- 帖子
- 976
- 主題
- 7
- 精華
- 0
- 積分
- 1018
- 點名
- 0
- 作業系統
- Win10
- 軟體版本
- Office 2016
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-4-19
- 最後登錄
- 2025-1-10
|
5#
發表於 2022-7-29 20:25
| 只看該作者
本帖最後由 samwang 於 2022-7-29 20:27 編輯
回復 3# BV7BW
1)單項目查詢.主要查詢4/1至4/10日單一項目所有銷售出數量.及哪幾客戶所買多少呈列
如下請測試看看,謝謝
Sub 單項目查詢()
Dim Arr, xD, T$, Ds As Date, De As Date
Dim Brr(1 To 1, 1 To 4), Crr(), n%, i&, j%
Set xD = CreateObject("Scripting.Dictionary")
Ds = [K5]: De = [K6]: T = [K9]
Arr = Sheets("訂貨明細表").[a1].CurrentRegion
ReDim Crr(1 To UBound(Arr), 1 To 5)
For i = 2 To UBound(Arr)
If Arr(i, 4) <> T Then GoTo 99
If Arr(i, 12) >= Ds And Arr(i, 12) <= De Then
If n = 0 Then
n = n + 1: xD(Arr(i, 1) & "") = n
For j = 1 To 4: Brr(1, j) = Arr(i, j + 2): Next
Crr(n, 1) = Arr(i, 1): Crr(n, 2) = Arr(i, 3)
Crr(n, 3) = Arr(i, 4): Crr(n, 4) = Arr(i, 5)
Crr(n, 5) = Arr(i, 6)
Else
If xD.Exists(Arr(i, 1) & "") Then
m = xD(Arr(i, 1) & "")
Crr(m, 4) = Arr(i, 5) + Crr(m, 4)
Else
n = n + 1: xD(Arr(i, 1) & "") = n
Crr(n, 1) = Arr(i, 1): Crr(n, 2) = Arr(i, 3)
Crr(n, 3) = Arr(i, 4): Crr(n, 4) = Arr(i, 5)
Crr(n, 5) = Arr(i, 6)
End If
Brr(1, 3) = Brr(1, 3) + Arr(i, 5)
End If
End If
99: Next
If n > 0 Then
Range("a2:c2") = ""
Range("a2").Resize(1, 4) = Brr
Range("r2:v8") = ""
Range("r2").Resize(n, 5) = Crr
End If
End Sub
|
|