[算表] VBA阵列取唯一值

楼主: nazomegami (深呼吸~)   2016-03-02 17:07:38
软件: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
作者: soyoso (我是耀宗)   2016-03-02 18:39:00
可用instr和split https://i.imgur.com/4EhEOx4
作者: potawei (我要13亿)   2016-03-02 20:25:00
val = "C" '找Cpos = Application.Match(val, A, False) 'C首次位置pos = Application.Match(val, a, False) '小写a计算出现次数 Scripting.Dictionaryhttps://goo.gl/7V8MYr
作者: soyoso (我是耀宗)   2016-03-02 20:56:00
createobject("scripting.dictionary")可以取得唯一值为何又要计算出现次数呢?抱歉原文,原po有写到要计算出现次数修改instr方式计数 https://i.imgur.com/fgSDUL1也可为 https://i.imgur.com/U9tCsAQ
楼主: nazomegami (深呼吸~)   2016-03-03 12:19:00
谢谢楼上版友,已测试ok

Links booklink

Contact Us: admin [ a t ] ucptt.com