標題:
資料對應
[打印本頁]
作者:
y663258
時間:
2011-2-8 11:05
標題:
資料對應
大家好,敬請幫忙如附件說明vba要怎麼寫,想了很久就是做不到。
作者:
Hsieh
時間:
2011-2-8 11:30
回復
1#
y663258
Sub nn()
Dim ar(7, 6)
ar(1, 2) = "年": ar(3, 2) = "月": ar(5, 2) = "日"
r = 4: k = 1
With Sheet2
For Each a In .Range(.[A2], .[A65536].End(xlUp))
ar(0, 4) = a.Value
ar(0, 2) = a.Offset(, 1).Value
ar(2, 2) = a.Offset(, 2).Value
ar(4, 2) = a.Offset(, 3).Value
ar(0, 0) = a.Offset(, 4).Value
Sheet1.Cells(r, k).Resize(7, 6) = ar
k = k + 6
If k = 25 Then k = 1: r = r + 10
Next
End With
End Sub
複製代碼
作者:
y663258
時間:
2011-2-8 12:04
Hsieh 版主,謝謝經測試完全正確,祈望獲得注解以便學習可以嗎。
作者:
Hsieh
時間:
2011-2-8 16:01
回復
3#
y663258
Sub nn()
Dim ar(7, 6) '宣告一個6列7欄的陣列
ar(1, 2) = "年": ar(3, 2) = "月": ar(5, 2) = "日" '固定不變的值先寫入陣列
r = 4: k = 1 '開始寫入的位置r是列位,k是欄位
With Sheet2
For Each a In .Range(.[A2], .[A65536].End(xlUp))
ar(0, 4) = a.Value 'A欄的值是陣列中第5欄的第1個位置
ar(0, 2) = a.Offset(, 1).Value 'B欄的值是陣列中第3欄的第1個位置
ar(2, 2) = a.Offset(, 2).Value 'C欄的值是陣列中第3欄的第3個位置
ar(4, 2) = a.Offset(, 3).Value 'D欄的值是陣列中第3欄的第5個位置
ar(0, 0) = a.Offset(, 4).Value 'E欄的值是陣列中第1欄的第1個位置
Sheet1.Cells(r, k).Resize(7, 6) = ar '寫入到表格
k = k + 6 '準備下一個寫入欄位
If k = 25 Then k = 1: r = r + 10 '因為標籤橫向有4張,每張佔了6欄,所以當寫入位置到了25欄時必須回到第一欄,並向下位移10列寫入
Next
End With
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)