返回列表 上一主題 發帖

如何透過寫程式之方式將ab欄位整合

謝謝論壇,謝謝各位前輩
後學藉此帖練習陣列與字典,學習方案如下,請各位前輩指教

執行前:


執行結果:



Option Explicit
Sub TEST()
Dim Brr, Crr, Y, i&, T$, M%
'↑宣告變數
Set Y = CreateObject("Scripting.Dictionary")
'↑令Y變數是 字典
Brr = Range([B1], [A65536].End(xlUp))
'↑令Brr變數是 二維陣列,以A.B欄儲存格值帶入陣列中
ReDim Crr(1 To UBound(Brr), 1 To 100)
'↑令宣告Crr變數是 二維空陣列,縱向範圍同Brr陣列,橫向索引號1~100
For i = 1 To UBound(Brr)
'↑設順迴圈!從1到Brr陣列縱向最大索引列號
   T = Brr(i, 1)
   '↑令T變數是 i迴圈第1欄Brr陣列值
   If Y(T) = "" Then
   '↑如果T變數查Y字典的item值是"" ?
      Y(T) = Y.Count
      '↑令Y字典的T變數key的item值是 Y字典key的數量
      Crr(Y(T) \ 2 + 1, 1) = T
      '↑令Crr陣列放入T變數
      Y(T & "/C") = 1
      '↑令T變數連接"/C"組成的新字串當key,item是1,納入Y字典中
   End If
   Y(T & "/C") = Y(T & "/C") + 1
   '↑令Y字典中(T變數連接"/C"組成字串)key,其item值累加1
   '這是要在Y字典中記錄T變數欄號

   Crr(Y(T) \ 2 + 1, Y(T & "/C")) = Brr(i, 2)
   '↑令Crr陣列在適當位置放入 i迴圈第2欄Brr陣列值
   If Y(T & "/C") > M Then
   '↑如果Y字典中記錄T變數欄號大於M變數
      M = Y(T & "/C")
      '↑就讓M變數換裝變數欄號
      Crr(1, M) = Brr(1, 2)
      '↑令在Crr陣列第1列M欄號位置添加一個"部門名稱"標題
   End If
Next
[E1].Resize(Y.Count \ 2 + 1, M) = Crr
'↑令Crr陣列值從[E1]開始寫入儲存格中
Set Y = Nothing: Erase Brr, Crr
'↑令釋放變數
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 成功是優點的發揮,失敗是缺點的累積。
返回列表 上一主題