[算表] 陣列移除重複寫入工作表內vba?

看板Office作者 (佩蒂吉他)時間9年前 (2017/04/01 09:35), 9年前編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/1
軟體: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

04/01 10:34, , 1F
如要判斷陣列中元素總數的話可以ubound
04/01 10:34, 1F

04/01 10:39, , 2F
巨集for next counter為變數i,而迴圈內變數i累加,這樣進
04/01 10:39, 2F

04/01 10:40, , 3F
入該迴圈時會以1,3,5,7,9的值帶入到range("a"&i)內
04/01 10:40, 3F

04/01 10:42, , 4F
如要帶入唯一值,可於for each..next內只留d(e)=""
04/01 10:42, 4F

04/01 10:44, , 5F
於執行迴圈後以d.count來取得d的元素總數
04/01 10:44, 5F

04/01 10:45, , 6F
以range.resize(d.count)=worksheetfunction.transpose
04/01 10:45, 6F

04/01 10:46, , 7F
(d.keys)方式寫入到儲存格內
04/01 10:46, 7F

04/03 11:41, , 8F
感謝S大 有點複雜來研究看看
04/03 11:41, 8F
文章代碼(AID): #1OtmFV8j (Office)
文章代碼(AID): #1OtmFV8j (Office)