依訂單資料轉換成六週排程表,敬請各位大大賜教!!!
- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
本帖最後由 Hsieh 於 2012-4-28 00:11 編輯
回復 4# p6703 - Sub Ex()
- Dim A As Range
- Set d = CreateObject("Scripting.Dictionary")
- With Sheet2
- n = .Cells(1, .Columns.Count).End(xlToLeft).Column - 1
- s = Day(.[E1])
- With Sheet1
- For Each A In .Range(.[A2], .[A2].End(xlDown))
- ReDim ar(0 To 1, 0 To n)
- m = A & "," & A.Offset(, 1) & "," & A.Offset(, 2)
- If IsEmpty(d(m)) Then
- GoTo 10
- Else
- For i = 0 To 1
- For j = 0 To n
- ar(i, j) = d(m)(i, j)
- Next
- Next
- End If
- 10
- x = Day(A.Offset(, 4)) - s + 4 '需求日
- y = Day(A.Offset(, 5)) - s + 4 '交期
- For i = 0 To 2
- ar(0, i) = A.Offset(, i)
- Next
- ar(0, 3) = "需求日"
- ar(1, 3) = "交期"
- ar(0, x) = ar(0, x) + A.Offset(, 3) '需求
- ar(1, y) = A.Offset(, 3)
- d(m) = ar
- Erase ar
- Next
- End With
- r = 2
- For Each ky In d.keys
- .Cells(r, 1).Resize(2, n + 1) = d(ky)
- r = r + 2
- Next
- End With
- End Sub
複製代碼 |
|
|
學海無涯_不恥下問
|
|
|
|
|
- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
回復 12# p6703 - Sub Ex()
- Dim A As Range, x%, y%
- Set d = CreateObject("Scripting.Dictionary")
- With Sheets("Sheet2")
- s = Application.Min(.Rows(1))
- With Sheets("Sheet1")
- n = Application.Max(.Columns("E:F")) - s + 4
- For Each A In .Range(.[A2], .[A2].End(xlDown))
- ReDim ar(0 To 1, 0 To n)
- m = A & "," & A.Offset(, 1) & "," & A.Offset(, 2)
- If IsEmpty(d(m)) Then
- GoTo 10
- Else
- For i = 0 To 1
- For j = 0 To n
- ar(i, j) = d(m)(i, j)
- Next
- Next
- End If
- 10
- x = A.Offset(, 4) - s + 4 '需求日
- y = A.Offset(, 5) - s + 4 '交期
- For i = 0 To 2
- ar(0, i) = A.Offset(, i)
- Next
- ar(0, 3) = "需求日"
- ar(1, 3) = "交期"
- ar(0, x) = ar(0, x) + A.Offset(, 3) '需求
- ar(1, y) = A.Offset(, 3)
- d(m) = ar
- Erase ar
- Next
- End With
- r = 2
- For Each ky In d.keys
- .Cells(r, 1).Resize(2, n + 1) = d(ky)
- r = r + 2
- Next
- End With
- End Sub
複製代碼 |
|
|
學海無涯_不恥下問
|
|
|
|
|
- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
回復 18# p6703 - Sub Ex()
- Dim A As Range, x#, y#
- Set d = CreateObject("Scripting.Dictionary")
- With Sheets("Sheet2")
- s = Application.Min(.Rows(1))
- With Sheets("Sheet1")
- n = Application.Max(.Columns("E:F")) - s + 4
- For Each A In .Range(.[A2], .[A2].End(xlDown))
- ReDim ar(0 To 1, 0 To n)
- m = A & "," & A.Offset(, 1) & "," & A.Offset(, 2)
- If IsEmpty(d(m)) Then
- GoTo 10
- Else
- For i = 0 To 1
- For j = 0 To n
- ar(i, j) = d(m)(i, j)
- Next
- Next
- End If
- 10
- x = A.Offset(, 4) - s + 4 '需求日
- y = A.Offset(, 5) - s + 4 '交期
- For i = 0 To 2
- ar(0, i) = A.Offset(, i)
- Next
- ar(0, 3) = "需求日"
- ar(1, 3) = "交期"
- If x > 0 Then ar(0, x) = ar(0, x) + A.Offset(, 3) '需求避免Sheet1內需求日無日期
- If y > 0 Then ar(1, y) = A.Offset(, 3) '交期避免Sheet1內交期無日期
- d(m) = ar
- Erase ar
- Next
- End With
- r = 2
- For Each ky In d.keys
- .Cells(r, 1).Resize(2, n + 1) = d(ky)
- r = r + 2
- Next
- End With
- End Sub
複製代碼 |
|
|
學海無涯_不恥下問
|
|
|
|
|
- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
回復 21# p6703 - Sub Ex()
- Dim A As Range, x#, y#
- Set d = CreateObject("Scripting.Dictionary")
- With Sheet2 's("Sheet2")
- s = Application.Min(.Rows(1))
- With Sheets("Sheet1")
- n = Application.Max(.Columns("G:H")) - s + 6
- For Each A In .Range(.[A2], .[A2].End(xlDown))
- ReDim ar(0 To 1, 0 To n)
- m = A & "," & A.Offset(, 1) & "," & A.Offset(, 2) '訂單、料號、項次為索引
- If IsEmpty(d(m)) Then
- GoTo 10
- Else
- For i = 0 To 1
- For j = 0 To n
- ar(i, j) = d(m)(i, j)
- Next
- Next
- End If
- 10
- x = A.Offset(, 6) - s + 6 '需求日
- y = A.Offset(, 7) - s + 6 '交期
- For i = 0 To 4
- ar(0, i) = A.Offset(, IIf(i >= 3, i + 1, i))
- Next
- ar(0, 5) = "需求日"
- ar(1, 5) = "交期"
- If x > 0 Then ar(0, x) = ar(0, x) + A.Offset(, 3) '需求避免Sheet1內需求日無日期
- If y > 0 Then ar(1, y) = A.Offset(, 3) '交期避免Sheet1內交期無日期
- d(m) = ar
- Erase ar
- Next
- End With
- r = 2
- For Each ky In d.keys
- .Cells(r, 1).Resize(2, n + 1) = d(ky)
- For i = 0 To 1
- mystr = ""
- Set Rng = .Range("G" & r).Offset(i).Resize(, n - 5)
- If Application.CountA(Rng) > 0 Then
- For Each A In Rng.SpecialCells(xlCellTypeConstants)
- mystr = IIf(mystr = "", .Cells(1, A.Column).Text & "*" & A / 1000 & "K", mystr & "," & .Cells(1, A.Column).Text & "*" & A / 1000 & "K")
- Next
- .Cells(r + i, "CF") = mystr
- End If
- Next
- r = r + 2
- Next
- End With
- End Sub
複製代碼 |
|
|
學海無涯_不恥下問
|
|
|
|
|