返回列表 上一主題 發帖

[發問] 如何將出貨數量數字.帶到另個工作表後自動產生流水編號

[發問] 如何將出貨數量數字.帶到另個工作表後自動產生流水編號

請問先進
如何將工作表"編號"的出貨數量數字..帶到SHEET1後自動產生流水編號…
若出貨數量為100則工作表1需要有100列同資料..但不同流水編號..
(SHEET1的編號以18碼為原則..希望能不拆開這18碼..)謝謝.


PDF417CODE.rar (4.5 KB)
學如逆水行舟 不進則退

回復 1# PD961A
  1. Sub Ex()
  2.     Dim i%
  3.     With Sheets("編號")
  4.         For i = 1 To .[h2] - 1
  5.             .[A2:G2].Offset(i) = .[A2:G2].Value
  6.             .[A2:G2].Offset(i).Cells(4) = Mid(.[d2], 1, 11) & Format(i + 1, "0000000")
  7.         Next
  8.     End With
  9. End Sub
複製代碼

TOP

回復 2# GBKEE


    版主謝謝您
對不起大概是我的敘述不是很完整
所以您的程式碼帶入後...得到的結果是相反的

資料輸入是在工作表"編號"H欄的出貨數量為標的
若出貨數量為"50"則在工作表SHEET1會得到50個不同編號順序的流水號
而不是在"編號"那張表排序出50個流水號
非常感謝您....


學如逆水行舟 不進則退

TOP

  1. Sub Ex()
  2.     Dim i%
  3.     With Sheets("編號")
  4.         For i = 1 To .[h2]
  5.             Sheets("Sheet1").[A1:G1].Offset(i) = .[A2:G2].Value
  6.             Sheets("Sheet1").[A1:G1].Offset(i).Cells(4) = Mid(.[d2], 1, 11) & Format(i, "0000000")
  7.         Next
  8.     End With
  9. End Sub
複製代碼
指定表名即可。

TOP

回復 3# PD961A
  1. Sub nn()
  2. With Sheets("編號")
  3. ReDim ar(.[H2] - 1)
  4. cnt = CDec(Mid(.[D2], 2))
  5. For i = 0 To .[H2] - 1
  6.   ar(i) = Array(.[A2].Value, "'" & .[B2].Value, .[C2].Value, Mid(.[D2], 1, 1) & cnt + i, .[E2].Value, .[F2].Value, .[G2].Value)
  7. Next
  8. Sheet1.[A2].Resize(.[H2], 7) = Application.Transpose(Application.Transpose(ar))
  9. End With
  10. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 PD961A 於 2010-9-13 00:20 編輯

回復 4# oobird
回復 5# Hsieh

    謝謝2位版主
您們目前給的程式可以輸入一列後帶到SHEET1=50個流水號

可以再請問
若持續輸入數筆資料後
是否仍能持續有排序流水號的功能
謝謝您


學如逆水行舟 不進則退

TOP

問題最好明確些,數筆資料你想建立那一筆的流水號?全部平均分攤那50筆?

TOP

回復 7# oobird

oobird版主謝謝您
   
資料輸入是在工作表"編號"H欄的出貨數量為標的

以SHEET1是執行後結果
若編號工作表第1列輸入H欄的出貨數量為標的100..則在工作表SHEET1-"D欄"會得到100個流水號(001~100)

同頁資料輸入在編號工作表第2列輸入H欄的出貨數量為標的10..
則在工作表SHEET1-"D欄"會得到10個流水號(101~110)

同頁資料輸入編號工作表第3列
輸入H欄的出貨數量為標的2..則在工作表SHEET1-"D欄"延續109之後
得到111~112
以此類推....

流水號在客戶端需求共7碼
只能累計不能重複
謝謝您
學如逆水行舟 不進則退

TOP

  1. Sub nn()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. Set d1 = CreateObject("Scripting.Dictionary")
  4. With Sheets("編號")
  5. For Each a In .Range(.[A2], .[A65536].End(xlUp))
  6.     d(a.Value) = d(a.Value) + a.Offset(, 7)
  7.     d1(a.Value) = Array(a.Value, a.Offset(, 1).Value, a.Offset(, 2).Value, Mid(a.Offset(, 3), 1, 11), a.Offset(, 4).Value, a.Offset(, 5).Value, a.Offset(, 6).Value)
  8. Next
  9. Sheets("Sheet1").[A2:G65536].Clear
  10. For Each ky In d.keys
  11.    ReDim Ar(d(ky))
  12.    For i = 0 To d(ky) - 1
  13.      x = d1(ky)(3) & Format(i, "0000000")
  14.      With Sheets("Sheet1")
  15.        .[A65536].End(xlUp).Offset(1, 0).Resize(, 7) = Array(d1(ky)(0), d1(ky)(1), d1(ky)(2), x, d1(ky)(4), d1(ky)(5), d1(ky)(6))
  16.      End With
  17.    Next
  18. Next
  19. End With
  20. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 PD961A 於 2010-9-17 09:50 編輯

謝謝
GBKEE
oobird
Hsieh 版主

客戶端需求更新
重新上傳檔案
請先進給予修正執行後的畫面
謝謝..








PDF417CODE990917.rar (95.67 KB)
學如逆水行舟 不進則退

TOP

        靜思自在 : 虛空有盡.我願無窮,發願容易行願難。
返回列表 上一主題