返回列表 上一主題 發帖

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

本帖最後由 PD961A 於 2010-9-21 16:23 編輯

回復 11# GBKEE


    謝謝GBKEE版主
學如逆水行舟 不進則退

TOP

回復 10# PD961A
  1. Sub Ex()
  2.     Dim Rng As Range, N%
  3.     Set Rng = Sheet2.Range("A1").CurrentRegion
  4.     Sheet1.Range("A1").CurrentRegion.Offset(1) = ""
  5.     N = 1
  6.     For i = 2 To Rng.Rows.Count
  7.         For II = 1 To Rng.Rows(i).Cells(Rng.Columns.Count)
  8.             With Sheet1.Range("A1").CurrentRegion.Rows(N + 1)
  9.                 .Value = Rng.Rows(i).Resize(, Rng.Columns.Count - 1).Value
  10.                 .Cells(4) = Rng.Rows(i).Cells(4) & Format(N, "0000000")
  11.                 N = N + 1
  12.             End With
  13.         Next
  14.     Next
  15. End Sub
複製代碼

TOP

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

謝謝
GBKEE
oobird
Hsieh 版主

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








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

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

回復 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

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

TOP

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

回復 4# oobird
回復 5# Hsieh

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

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


學如逆水行舟 不進則退

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

  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

回復 2# GBKEE


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

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


學如逆水行舟 不進則退

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題