作业帮 > 综合 > 作业

VBA 代码 a="$A$10,$A$14,$A$18,$A$12,$A$12,$A$14,$A$18,$A$10"

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/10 20:25:48
VBA 代码 a="$A$10,$A$14,$A$18,$A$12,$A$12,$A$14,$A$18,$A$10"
变量a为下面的形式,其中的元素可能很多
a="$A$10,$A$14,$A$18,$A$12,$A$15,$A$14,$A$18,$A$11"
如果有重复的例如其中有2个$A$14和2个$A$18则将这4个元素连同其后面的逗号都去掉,变成:
a="$A$10,$A$12,$A$15,$A$11"
用字典过度下吧sub t()
dim dic,arr,a
a="$A$10,$A$14,$A$18,$A$12,$A$12,$A$14,$A$18,$A$10"
arr=split(a,",")
set dic=createobject("scripting.dictionary")
for i=0 to ubound(arr)
    if dic.exists(arr(i))=false then
        dic(arr(i))=""
    end if
next
a=join(dic.keys,",")
end sub
再问: 非常感谢!按照标题上的a值计算后应该为a="",而现在却为a = "$A$10,$A$14,$A$18,$A$12" 希望按照这个a值即a="$A$10,$A$14,$A$18,$A$12,$A$15,$A$14,$A$18,$A$11"修改代码,结果应该是a="$A$10,$A$12,$A$15,$A$11",完全去掉了",$A$14,$A$18"。
再答: sub t()
dim dic,arr,a,ke,str
a="$A$10,$A$14,$A$18,$A$12,$A$12,$A$14,$A$18,$A$10"
arr=split(a,",")
set dic=createobject("scripting.dictionary")
for i=0 to ubound(arr)
    dic(arr(i))=dic(arr(i))+1
next
for each ke in dic.keys
    if dic(ke)=1 then
        str=str & "," & ke
    end if
next
a=mid(str,2)
end sub