返回列表 上一主題 發帖

出貨單建立

出貨單建立

請問各位先進,目前遇到此問題
我先在資料輸入打完資料後,將所有資料匯至出貨資料這區塊
想在出貨資料分頁將A欄也帶入單號
請問要如讓將單號這欄,可以自動判定B欄位這次新增多少"圖號",''將單號複製在A欄位
2022-10-06_104546.png
2022-10-6 10:46

test.rar (24.65 KB)

回復 1# cclo0728
請測試看看,謝謝
Sub test()
Dim Arr, T, R&
With Sheets("資料輸入")
    R = .[b65536].End(3).Row
    If R < 5 Then Exit Sub
    Arr = .Range("b5:g" & R)
    T = .[F2]
End With
With Sheets("出貨資料")
    R = .[b65536].End(3).Row + 1
    .Range("b" & R).Resize(UBound(Arr), 6) = Arr
    .Range("a" & R & ":a" & R + UBound(Arr) - 1) = T
End With
End Sub

TOP

回復 2# samwang
Sub test()
Dim Arr, T, R&
With Sheets("資料輸入")
    R = .[b65536].End(3).Row
    If R < 5 Then Exit Sub <------這行的意思是?
    Arr = .Range("b5:g" & R)
    T = .[F2]
End With
With Sheets("出貨資料")
    R = .[b65536].End(3).Row + 1
    .Range("b" & R).Resize(UBound(Arr), 6) = Arr<------這行的意思是?
    .Range("a" & R & ":a" & R + UBound(Arr) - 1) = T<------這行的意思是?
End With
End Sub

假如我把客戶單號由f2移至b2
要將a2與b2這兩欄放到出貨資料ab欄請問要如何修改?

TOP

回復  samwang
Sub test()
Dim Arr, T, R&
With Sheets("資料輸入")
    R = ..End(3).Row
    If R  ...
cclo0728 發表於 2022-10-6 16:36


  If R < 5 Then Exit Sub <------這行的意思是? >> 如果沒資料就離開
   .Range("b" & R).Resize(UBound(Arr), 6) = Arr<------這行的意思是? >> 資料貼到出貨資料的最後一列
   .Range("a" & R & ":a" & R + UBound(Arr) - 1) = T<------這行的意思是? >> 貼上單號
假如我把客戶單號由f2移至b2  >>  T = .[b2]
要將a2與b2這兩欄放到出貨資料ab欄請問要如何修改? >> 不好意思,看不太懂,請附上檔案

TOP

回復 4# samwang
要將資料輸入的a2與b2欄位,帶入出貨資料的分頁
test.rar (25.61 KB)

TOP

回復  samwang
要將資料輸入的a2與b2欄位,帶入出貨資料的分頁
cclo0728 發表於 2022-10-7 08:10

請測試看看,謝謝
Sub test()
Dim Arr, T, T2, R&
With Sheets("資料輸入")
    R = .[b65536].End(3).Row
    If R < 5 Then Exit Sub
    Arr = .Range("b5:g" & R)
    T = .[A2]: T2 = .[B2]
End With
With Sheets("出貨資料")
    R = .[C65536].End(3).Row + 1
    .Range("C" & R).Resize(UBound(Arr), 6) = Arr
    .Range("a" & R & ":a" & R + UBound(Arr) - 1) = T
    .Range("b" & R & ":b" & R + UBound(Arr) - 1) = T2

End With
End Sub

TOP

回復 6# samwang
非常感謝,可以執行
昨天在看的時候以為可以直接a2:b2直接用範圍複製
今天知道要如何處理了,謝謝

TOP

本帖最後由 Andy2483 於 2022-10-7 16:21 編輯

回復 5# cclo0728


    謝謝前輩發表此主題與範例
後學提供另一種方法供前輩參考
今天習得陣列倒入字典與至字典中取出陣列
練習陣列語字典

'刪除結果表舊資料!再帶入新資料
Option Explicit
Sub test_A()
Dim Arr, T, xD, xA, xB
'↑宣告變數

Set xD = CreateObject("Scripting.Dictionary")
'↑令xD是字典

Set xA = Sheets("資料輸入")
'↑令xA是工作表 "資料輸入"

Set xB = Sheets("出貨資料")
'↑令xB是工作表"出貨資料"

T = xA.Cells(Rows.Count, 3).End(3).Row - 4
'↑令T是"資料輸入"表要帶入 "出貨資料"表的列數

Arr = xA.Cells(5, 2).Resize(T, 6)
'↑來源表資料倒入Arr陣列

xD(1) = Arr
'↑Arr陣列倒入字典

xD(2) = xA.Cells(2, 1)
'↑客戶名稱倒入字典

xD(3) = xA.Cells(2, 2)
'↑單號倒入字典

xB.UsedRange.Offset(1, 0).EntireRow.Delete
'↑舊資料刪除

xB.[C2].Resize(UBound(Arr), 6) = xD(1)
'↑帶出陣列放入結果表

xB.[A2].Resize(T, 1) = xD(2)
'↑帶出客戶名稱放入結果表

xB.[B2].Resize(T, 1) = xD(3)
'↑帶出單號放入結果表

End Sub

TOP

回復 6# samwang

請教問題我在出貨資料中221007001有10筆,我在資料輸入再輸入10資料,單號可以判定出貨資料最後一欄位+1嗎?
例如單號可以自動當天日期+流水號,221007001
我的想法是輸入明細後,匯至出貨資料時在單號部分就帶入日期加流水號,隔天流水號就回到1
麻煩在指點,謝謝
test.rar (22.24 KB)

TOP

回復 8# Andy2483
很詳細,還附中文,我測試使用,感謝指點:)

TOP

        靜思自在 : 為人處世要小心細心,但不要「小心眼」。
返回列表 上一主題