返回列表 上一主題 發帖

[發問] 如何加資料

回復 2# Hsieh


    謝謝論壇,謝謝前輩
後學藉此帖學習到JOIN() 儲存格值需要經過兩次轉置,讓變成一維陣列,才能連接成新字串
學習心得如下,請前輩再指教

Option Explicit
Sub Ex()
Dim A As Range, d, d1, mystr$
'↑宣告變數:A是 儲存格變數,(d,d1)是通用型變數,mystr是字串變數
Set d = CreateObject("Scripting.Dictionary")
'↑令d這通用變數是 字典
Set d1 = CreateObject("Scripting.Dictionary")
'↑令d1這通用變數是 字典
For Each A In Range([A1], [A1].End(xlDown))
'↑設逐項迴圈!令A這儲存格變數是 範圍儲存格裡的一格,
'範圍儲存格:本表[A1]到 [A]往下找最後一個有內容儲存格,這範圍儲存格

mystr = Join(Application.Transpose(Application.Transpose(A.Resize(, 4))), ",")
'↑令mystr這字串變數是 A變數(儲存格)向右擴展4欄儲存格經2次轉置後,
'以 ","連接成的新字串

d(mystr) = d(mystr) + A.Offset(, 4).Value
'↑令以mystr變數為key,item是 item自身 + A變數向右偏移4格儲存格(E欄)值,
'納入d字典

d1(mystr) = Array(A.Value, A.Offset(, 1).Value, A.Offset(, 2).Value, _
            A.Offset(, 3).Value, d(mystr))
'↑令以mystr變數為key,item是 陣列(A變數(含)右側4個儲存格值,
'以mystr變數查d字典的item值)

Next
[H:L] = ""
'↑令[H:L]儲存格值是 空字元
[H1].Resize(d1.Count, 5) = Application.Transpose(Application.Transpose(d1.items))
'↑令[H1]擴展向下d1字典key數列,擴展向右5欄,這範圍儲存格值以d1字典items轉置兩次帶入
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 一句溫暖的話,就像往別人身上灑香水,自己會沾到兩三滴。
返回列表 上一主題