Set d = createobject("腳本。dictionary ")'將d指定為dictionary對象。
arr = Sheet1。使用範圍
對於i = 2到下界(arr)
If arr(i,1)& lt;& gt""然後d(arr(i,1)) = "" 'D添加關鍵字。
然後
同範圍(“B2”)。確認
。刪除
。add3,1,1,join (d.keys,“,”)b2增加的數據有效性等於d關鍵字鏈接的值。
以…結尾
設置d =無
末端接頭
子查詢()
Dim d,arr,brr(),ar,br(),abr(),m,n,I,j,a,b,aa,s
範圍(" A5:P10000 ")。“清除內容”清除(“A5: P10000”)單元格區域的內容。
如果Range("B2") = " "那麽MsgBox "請選擇壹項!程序退出。,64,“提示”:退出短接
如果Range("C2") = " "那麽MsgBox "請填寫出庫數量!程序退出。,64,“提示”:當出口子單元格B2和C2為空時,會彈出壹個對話框。
Arr = Sheet1。“使用範圍”分配數組。
對於在ARR1維度上的i = 2到UBound(arr)'循環。
如果arr (I,1) = Range("B2 "),arr(i,4) = "可用",那麽'判斷單元格是否等於Range("B2 "),arr (I,4) = "可用",執行下面的代碼。
M = m+1 'M個值被累加。
Redim preserve BRR (1to7,1toM)'為BRR數賦值,
對於j = 1到6 'J循環從1到6。
Brr(j,m) = arr(i,j)'給Brr賦值等於相應arr數組方面的值。
然後
Brr(7,m) = arr(i,10)'也是壹個Brr賦值。
如果…就會結束
如果arr(i,1) = Range("B2 "),那麽,判斷arr (I,1) = range ("B2 "),執行下面的代碼。
S = s+1的累加值。
Redim preserve abr (1to7,1tos)' m也是分配給abr的值,等於相應的arr數組方面。
對於j = 1到6
abr(j,s) = arr(i,j)
然後
abr(7,s) = arr(i,10)
如果…就會結束
然後
如果m = 0,則‘如果m等於0,則執行以下過程。
範圍(" B5:H10000 ")。“清除內容”清除((b5: h10000”)單元格區域的內容。
【b5】。resize (s,7) =應用程序。transpose (abr)' {b5]擴展區域後,賦值等於abr轉置的值。
range(" B5:H " & amp;S+4)。Sort [H5]'對H列進行排序。
MsgBox " " & amp範圍(“B2”)& amp;“該物料可發料的庫存為0!程序退出。,64,“提示”彈出提示
' Exit Sub '退出程序。
如果…就會結束
【b5】。resize (m,7) =應用程序。transpose (BRR)' {b5]展開區域後,賦值等於BRR轉置的值。
range(" B5:H " & amp;M+4)。Sort [H5]'對H列進行排序。
arr = Range(" B5:H " & amp;M+4)'重新分配ARR
範圍(" B5:H10000 ")。“清除內容”清除((b5: h10000”)單元格區域的內容。
【b5】。resize (s,7) =應用程序。transpose (abr)' {b5]擴展區域後,賦值等於abr轉置的值。
range(" B5:H " & amp;S+4)。Sort [H5]'對H列進行排序。
ARR數組中的For i = 1 To UBound(ARR)'循環。
A = a+arr(i,3)'給a賦值。
然後
B = Val(Range("C2 ")'給b賦值
如果a-b & lt;如果A-B小於0,則執行以下過程。
MsgBox " " & amp範圍(“B2”)& amp;“現有庫存項目”&;a & amp“不夠這次出站的!程序退出。,64,“提示”彈出提示
出口接頭
如果…就會結束
對於i = 1到UBound(arr)
n = n + 1
ReDim Preserve br(1到7,1到n)
對於j = 1到7
br(j,n) = arr(i,j)
然後
aa = aa + arr(i,3)
If Val(aa)>= Val(b) Then
為...退出
如果…就會結束
然後
br(3,n) = br(3,n) - (aa - b)
[J5]。Resize(n,7) =應用程序。Transpose (br)'上面的代碼是將值賦給[J5]。Resize (n,7)等於轉置的(br)內容。
末端接頭