|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Range("B5:M65536").ClearContents
Dim r1!, i!, arr, crr(), drr()
Dim k, t
Dim d As Object
r1 = Sheet3.Range("A65536").End(3).Row
Set d = CreateObject("Scripting.DictionAry")
arr = Sheet3.Range("B2:E" & r1)
For i = 1 To UBound(arr)
If arr(i, 2) <> "" Then
d(arr(i, 2)) = arr(i, 1) & "," & arr(i, 3) & "," & arr(i, 4)
End If
Next i
k = d.keys
t = d.items
s = d.Count
Range("E5").Resize(s, 1) = Application.WorksheetFunction.Transpose(k)
ReDim crr(1 To s, 1 To 1)
ReDim drr(1 To s, 1 To 2)
For i = 0 To s - 1
crr(i + 1, 1) = Split(t(i), ",")(0)
drr(i + 1, 1) = Split(t(i), ",")(1)
drr(i + 1, 2) = Split(t(i), ",")(2)
Next i
Range("B5").Resize(UBound(crr), 1) = crr
Range("F5").Resize(UBound(drr), 2) = drr
r = Range("E65536").End(3).Row
d.RemoveAll
'-------------------使用ADO查询-------------------------------------------------------------------------------
Set cn = CreateObject("ADODB.ConneCtion") '创建excel数据库连接
Set rs = CreateObject("ADODB.Recordset") '创建excel数据库连接
cn.Open "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
r1 = Sheet1.Range("B65536").End(3).Row
r2 = Sheet2.Range("B65536").End(3).Row
For i = 5 To r
Cells(i, "I").CopyFromRecordset cn.Execute("Select sum(数量) from [入库明细$B4:L" & r1 & "] where 类别='" & Cells(i, "B") & "' and 物品名称='" & Cells(i, "E") & "' and year(入库时间)=" & Year([P4]) & " and month(入库时间)=" & Month([P4]))
Cells(i, "J").CopyFromRecordset cn.Execute("Select sum(数量) from [出库明细$B4:L" & r2 & "] where 类别='" & Cells(i, "B") & "' and 物品名称='" & Cells(i, "E") & "' and year(出库时间)=" & Year([P4]) & " and month(出库时间)=" & Month([P4]))
Cells(i, "L").CopyFromRecordset cn.Execute("Select sum(数量) from [入库明细$B4:L" & r1 & "] where 类别='" & Cells(i, "B") & "' and 物品名称='" & Cells(i, "E") & "'")
Cells(i, "M").CopyFromRecordset cn.Execute("Select sum(数量) from [出库明细$B4:L" & r2 & "] where 类别='" & Cells(i, "B") & "' and 物品名称='" & Cells(i, "E") & "'")
Next i
'--------------------------------------------------------------------------------------------------------------
DateUp = DateAdd("d", -1, [P4])
Range("K5:K" & r) = "=L5-M5"
Range("H5:H" & r) = "=(L5-I5)-(M5-J5)"
Range("E" & r + 1) = "合计"
Range("H" & r + 1 & ":M" & r + 1) = "=SUM(H5:H" & r & ")"
Range("B5:M" & r + 1).Borders.LineStyle = 1 |
评分
-
1
查看全部评分
-
|