返回列表 上一主題 發帖

依訂單資料轉換成六週排程表,敬請各位大大賜教!!!

回復 6# p6703

Book1.rar (9.82 KB)

TOP

感謝register313兄指教,但小弟將程式碼複製執行巨集時,卻跑出"執行階段錯誤 '424': 此處需要物件"的警告視窗,停在.[A1].CurrentRegion.Offset(1, 0) = ""此列,不知何故???

TOP

回復 4# p6703

程式語法不理想,尚有改進空間,請指正
  1. Sub zz()
  2. Set d = CreateObject("scripting.dictionary")
  3. With Sheet1
  4.   ar = .Range("A2:F" & .[F2].End(xlDown).Row)
  5.   For i = 1 To UBound(ar)
  6.     x = ar(i, 1) & "," & ar(i, 2) & "," & ar(i, 3)
  7.     If Not d.exists(x) Then d.Add x, ar(i, 4) Else d(x) = d(x) + ar(i, 4)
  8.   Next i
  9. End With
  10. a = d.keys: b = d.items
  11. c = 0
  12. With Sheet2
  13.   .[A1].CurrentRegion.Offset(1, 0) = ""
  14.   For i = 0 To d.Count - 1
  15.     y = Split(a(i), ",")
  16.     .Range("A2").Offset(c, 0).Resize(1, 3) = y
  17.     .Range("D2").Offset(c, 0).Resize(2, 1) = Application.Transpose(Array("需求日", "交期"))
  18.     For j = 2 To Sheet1.[A2].End(xlDown).Row
  19.       x = Sheet1.Cells(j, 1) & "," & Sheet1.Cells(j, 2) & "," & Sheet1.Cells(j, 3)
  20.       If a(i) = x Then
  21.         E = Application.Match(Sheet1.Cells(j, 5), .Range(.[E1], .[E1].End(xlToRight)), 0)
  22.         .Range("E2").Offset(c, E - 1) = d(x)
  23.         F = Application.Match(Sheet1.Cells(j, 6), .Range(.[E1], .[E1].End(xlToRight)), 0)
  24.         .Range("E3").Offset(c, F - 1) = Sheet1.Cells(j, 4)
  25.       End If
  26.     Next j
  27.     c = c + 2
  28.   Next i
  29. End With
  30. End Sub
複製代碼

TOP

感謝c_c_lai 兄的補充說明,的確此就是小弟所想要的功能

但再額外補充說明一下,就如符件中的Sheet1上的訂單資料,其實有三筆是重覆的(因交期因素把它拆開來),但套到Sheet2時要匯整成一項(需求數加總,並依交期數分別套在對應的日期上)

TOP

回復 2# register313
他的意思應該是:

TOP

回復 1# p6703


看不懂如何對應? 如何填入sheet2?
給個範例 填入excel表內 較易了解

TOP

依來源資料比對符合日期套取在對應的欄位上???

如附件每日會有資料填於Sheet上,可否使用VBA將資料套取於Sheet2上的表格格式,懇請各位高手教導,在此先謝謝:)

主要依"交期"欄位會有分多筆,於需求日需加總同訂單數,而交期欄位各別比對其對應的符合日期欄位

Book1.rar (2.03 KB)

TOP

        靜思自在 : 不要隨心所欲,要隨心教育自己。
返回列表 上一主題