作者ptguitar (佩蒂吉他)
看板Office
標題[算表] 陣列移除重複寫入工作表內vba?
時間Sat Apr 1 09:35:25 2017
軟體:excel
版本:2007以上
要將某陣列移除重複並且寫入工作表內
我找了個巨集
Sub EX()
Dim AR, D As Object, E As Variant
Dim i As Integer
AR = Array("XX", "aa", "ab", "ab", "ab", "XX", "ab", "ab", "XX", "YY")
Set D = CreateObject("SCRIPTING.DICTIONARY") '字典物件
For Each E In AR
For i = 1 To 10
D(E) = ""
Range("A" & i) = D.KEYs
i = i + 1
Next i
Next
AR = D.KEYs
MsgBox Join(AR, vbLf)
End Sub
但是寫入儲存格都只有留下XX...
不知道是哪邊邏輯思考錯誤了
另外要怎麼自動判斷i要設定多少(就是陣列有多少個)
感謝各位大大指點
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.217.25
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1491010527.A.22D.html
※ 編輯: ptguitar (223.137.217.25), 04/01/2017 09:37:05
→ soyoso: 如要判斷陣列中元素總數的話可以ubound 04/01 10:34
→ soyoso: 巨集for next counter為變數i,而迴圈內變數i累加,這樣進 04/01 10:39
→ soyoso: 入該迴圈時會以1,3,5,7,9的值帶入到range("a"&i)內 04/01 10:40
→ soyoso: 如要帶入唯一值,可於for each..next內只留d(e)="" 04/01 10:42
→ soyoso: 於執行迴圈後以d.count來取得d的元素總數 04/01 10:44
→ soyoso: 以range.resize(d.count)=worksheetfunction.transpose 04/01 10:45
→ soyoso: (d.keys)方式寫入到儲存格內 04/01 10:46
→ ptguitar: 感謝S大 有點複雜來研究看看 04/03 11:41