幾年前在前公司,某一天正在key VBA代碼時,突然不用查代碼可以一直很順的打出代碼,那時我相信武俠小說寫的頓悟,今天晚上洗澡時在想明天公司資料擷取時要怎麼寫代碼比較快(不好的習慣,下班後還在想公事...太難改掉),因為是以前寫過的,洗著洗著突然認為可以在沒資料時寫出代碼,就這樣試著打,還真的完成代碼了,明天去公司只要微調就能使用,這次有BLOG記錄這個心情,心情開心,這跟超級賽亞人變身一樣嗎?
我想曾經打過的方式,應該都能在沒資料時都把code建構出來了吧。
PS.下面的代碼用在抓樞紐資料,因為樞紐跑出來會有點類似縮排,如果要抓類似資料格式,我個人認為是用VBA比較快。(尤其是沒有可用Power Query版本的office)
Sub A0_頓悟()
'2022/1/13 22:03
Application.ScreenUpdating = False
Dim D_資料, sh_來源 As Worksheet, sh_目的 As Worksheet
Set D_資料 = CreateObject("scripting.dictionary")
Set sh_來源 = Sheets("A")
Set sh_目的 = Sheets("B")
With sh_來源
lr = .Range("A1048576").End(xlUp).Row
arr_資料 = .Cells(1, 1).Resize(lr, 2)
For i_次 = 1 To 2
For i = LBound(arr_資料) To UBound(arr_資料)
If i_次 = 1 Then
If arr_資料(i, 1) = "" Then
arr_資料(i, 1) = arr_資料(i - 1, 1)
End If
ElseIf i_次 = 2 Then
in_料號 = arr_資料(i, 1)
in_客戶 = arr_資料(i, 2)
in_條件 = in_料號 & in_客戶
D_資料(in_條件) = Array(in_料號, in_客戶)
End If
Next
Next
End With
With sh_目的
.Cells.Delete
.Range("A2").Resize(D_資料.Count, 2) = Application.Transpose(Application.Transpose(D_資料.items))
End With
End Sub
沒有留言:
張貼留言