- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 5# fantersy
試試看- Option Explicit
- Sub Ex()
- Dim Ac(), xAr(), Ar(), Rng As Range, i As Integer, ii As Integer, e As Variant
- Ac = Array(12, 13, 1, 2, 14) '指定欄位順序
- i = 0
- For Each e In Array("D03生產計劃表", "陶瓷電木生產計劃表")
- Set Rng = Sheets(e).Range("A5") '起始列
- Do While Rng <> ""
- ReDim Ar(UBound(Ac)) '重置陣列:元素數=Ac
- ReDim Preserve xAr(0 To i) 'Preserve 選擇性引數。當改變原有陣列最後一維的大小時,仍然保有原來的資料的關鍵字。
- For ii = 0 To UBound(Ac) '
- Ar(ii) = Rng(1, Ac(ii)) '=> 'Ar(ii) = Rng.Cells(1, Ac(ii))
- Next
- xAr(i) = Ar '資料存入
- Set Rng = Rng.Offset(1)
- i = i + 1
- Loop
- Next
- Ar = Array("作業者", "分配碼", "製令單號", "產品產號", "分配量", "生產日", "生產量", "假日", "不良1", "不良2", "不良3", "不良4", "不良5", "不良6", "目檢員", "登錄")
- With Sheets("繞線-個人管製表改")
- .UsedRange.Clear
- Set Rng = .Range("A2")
- For Each e In xAr '讀取資料
- '=> For e = 0 To UBound(xAr)
- With Rng
- .Range("a1") = "繞線個人分配管制表"
- .Range("a2").Resize(, UBound(Ar) + 1) = Ar
- .Range("a3").Resize(, UBound(e) + 1) = e
- '=>.Range("a3").Resize(, UBound(xAr(e)) + 1) = xAr(e)
- End With
- Set Rng = Rng.Offset(7) '下移7列
- Next
- End With
- End Sub
複製代碼 |
|