Сравните два массива и верните не одинаковые значения - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть два массива в Excel VBA:

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

Теперь я хочу вырезать первый массив из значений, которые показаны в Array2. Результат должен выглядеть следующим образом:

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

У кого-нибудь есть идеи, как управлять этим в vba?

Спасибо за вашу помощь!

1 Ответ

2 голосов
/ 23 апреля 2020

Один из возможных способов - использовать Join для Array1, l oop 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

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...