作者nazomegami (深呼吸~)
看板Office
標題[算表] VBA陣列取唯一值
時間Wed Mar 2 17:07:38 2016
軟體:excel vba
版本:2010
(以下文字是在手機上輸入的,排版不佳請見諒。)
版上各位大大好,以下我想評估a陣列中字串元素的唯一值(首次出現位置)並計算出現次
數,如果是在儲存格中我都習慣使用frequency(match(a,a,0),match(a,a,0)),但是在VB
A中我嘗試以evaluate來評估結果卻失敗。
ꀊ
想請問一下我這樣的寫法有何錯誤?迌S或要取得陣列唯一值有何其他作法?é臏癒C
ꀊ
Sub test()
ꂠꀠDim a, b
ꂠꀠDim d, i&
ꂠꀠDim ary(10)
ꂠꀊ
ꂠꂠa = Array("A", "B", "A", "B", "B", "C", "B", "C", "D", "B")
ꂠꀠb = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
ꂠꀊ
ꂠꂠd = UBound(a)
ꂠꀊ
ꂠꂠFor i = 0 To d
ꂠꂠꂠꀠary(i) = Evaluate("frequency(match(""" & a(i) & """,{""" & Join(a, """
,""") & """},0),match(""" & a(i) & """,{""" & Join(a, """,""") & """},0))")
ꂠꀠNextꂠꂠꂠ
End Sub
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.77.115
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1456909661.A.78E.html
→ potawei: val = "C" '找C 03/02 20:25
→ potawei: pos = Application.Match(val, A, False) 'C首次位置 03/02 20:25
→ potawei: pos = Application.Match(val, a, False) '小寫a 03/02 20:26
→ potawei: 計算出現次數 Scripting.Dictionary 03/02 20:48
→ soyoso: createobject("scripting.dictionary")可以取得唯一值 03/02 20:56
→ soyoso: 為何又要計算出現次數呢? 03/02 20:56
→ soyoso: 抱歉原文,原po有寫到要計算出現次數 03/02 20:59
→ nazomegami: 謝謝樓上版友,已測試ok 03/03 12:19