比较两个数组,并将不一样的值反馈给对方。

问题描述 投票:0回答:1

我在excel vba中得到两个数组。

Array1 = Array("123", "456", "789", "101112", "131415")
Array2 = Array("789", "101112")

现在我想从Array2中显示的值中剪切第一个数组。结果应该是这样的。

result = Array("123", "456", "131415")

有人知道如何在vba中管理这个吗?

谢谢你的帮助

arrays excel vba
1个回答
2
投票

一个可能的方法是使用 Join 关于 Array1循环 Array2 在这个字符串上使用 Replace,然后 Split 字符串返回到一个数组中。类似这样。

Sub sRemoveArray()
    Dim Array1 As Variant
    Dim Array2 As Variant
    Dim strData As String
    Dim lngLoop1 As Long
    Array1 = Array("123", "456", "789", "101112", "131415")
    Array2 = Array("789", "101112")
    strData = "@" & Join(Array1, "@")       
    For lngLoop1 = LBound(Array2) To UBound(Array2)
        strData = Replace(strData, "@" & Array2(lngLoop1), "")
    Next lngLoop1
    If Left(strData, 1) = "@" Then strData = Mid(strData, 2)
    Array1 = Split(strData, "@")
End Sub

Regards,

© www.soinside.com 2019 - 2024. All rights reserved.