"")

vba思要给数组去重,不错通过获得数组里的一个元素放入新数组,之后用Filter函数将原数组里的雷同称号元素剔除,再索取下一个元素再剔除,轮回重叠直至原数组为空,这么得到的新数组等于剔除重叠值后的数组。 以下例如用vba给数组【"番茄", "香蕉", "小番茄", "香蕉", "番茄", "提子"】去除重叠值: 首页-盛 园哲杂果有限公司 Sub 数组去重()arr...


"")

vba思要给数组去重,不错通过获得数组里的一个元素放入新数组,之后用Filter函数将原数组里的雷同称号元素剔除,再索取下一个元素再剔除,轮回重叠直至原数组为空,这么得到的新数组等于剔除重叠值后的数组。

以下例如用vba给数组【"番茄", "香蕉", "小番茄", "香蕉", "番茄", "提子"】去除重叠值:

首页-盛 园哲杂果有限公司

杭州凯特电器有限公司 "") <> ""   '当“待去重数组数组”为空时退出循环

arr = Split(Replace(Join(arr2,杭州凯特电器有限公司 aa),杭州凯特电器有限公司 bb, ""), aa) '剔除“去重元素存放数组”所有数组元素中的“#”
MsgBox Join(arr, ",")   '用“,”串联数组所有元素查看结果
End Sub" cm-theme="neo" cm-mode="VB.NET">Sub 数组去重()
arr1 = Array("番茄", "香蕉", "小番茄",金属包装 "香蕉", "番茄", "提子")  '待去重数组
Dim arr2() As Variant      '迷惑动态数组,看成去重后数据存放的数组
iCounter = 0    '“去重数组”的待用下标
aa = "@" '第一种异常字符
bb = "#" '第二种异常字符

arr1 = Split(bb & Join(arr1, bb & aa & bb) & bb, aa)    '给“待去重数组”数组里通盘元素前后添加“#”
Do
    element = arr1(0)     '获得“待去重数组”里的第一个元素
    ReDim Preserve arr2(iCounter)       '再行界说动态数组大小
    arr2(iCounter) = element       '给“去重数组”添加该元素
    iCounter = iCounter + 1
    arr1 = VBA.Filter(arr1, element, False)    '“待去重数组”剔除通盘element元素
Loop While Join(arr1, "") <> ""   '当“待去重数组数组”为空时退出轮回

arr = Split(Replace(Join(arr2, aa), bb, ""), aa) '剔除“去重元素存放数组”所特等组元素中的“#”
MsgBox Join(arr, ",")   '用“,”串联数组通盘元素检察效果
End Sub

以上代码得到的去重数组等于【"番茄", "香蕉", "小番茄", "提子"】。

需要谛视的是,原数组在进行获得元素放入新数组前,要先对所特等组元素进行前后加异常标记“保护”,原因是Filter函数的筛选是肮脏匹配,思要精准匹配就要对数组元素预措置(规范贯通详见我的著作【VBA用Filter精准匹配筛选或剔除数组元素】),谛视聘请的两种异常字符必须是在数组元素中莫得出现的标记。在去重轮回限制后还要对去重后的数组吊销预措置时添加的异常标记(规范贯通详见我的著作【VBA去除数组元素中的特定字符串】)。

以上实质对您有匡助不错共享或转藏金属包装,幸免以后找不到。思要了解更多VBA联系常识,宽宥到http://moqingyan.360doc.com我的个东说念主藏书楼检察。

本站仅提供存储管事,通盘实质均由用户发布,如发现存害或侵权实质,请点击举报。

相关资讯