2016-09-02 2 views
0

Я пытаюсь получить непревзойденные строки в 2 массивах. Я пробовал это How to search for string in an array, но они возвращают true или false.Найти непревзойденные строки между двумя массивами vba

dim arr1 as variant 
dim arr2 as variant 

arr1 = "abc,def,ghi,jkl" 
arr2 = "abc,def,ghi,jkl,pre,ec,vw" 

Но я пытаюсь получить строки, как результата = "заранее, ес, Vw" Как определить, что в VBA

+2

Это строки, а не массивы. Вы имели в виду 'arr1 = Array (" abc "," def, "ghi", "jkl") 'etc? –

+0

@sam вы ищете, чтобы найти непревзойденные строки, а результат - строка? (Если это так, не нужно вставлять эту строку в массивы). Или вы пытаетесь сравнить элементы String внутри 2 массивов, и результат должен быть уникальным элементом массива? –

+0

Вы считаете, что использовать SQL для реализации того же? Просто предложение –

ответ

0

попробовать этот

result=replace(arr2,arr1,"") 

к которые находятся в arr2, но не в arr1

Sub aargh() 
    arr1 = "abc,def,ghi,jkl" 
    arr2 = "abc,def,ghi,zer,jkl,pre,ec,vw" 
    a = Split(arr1, ",") 
    For i = LBound(a) To UBound(a) 
     arr2 = Replace(arr2, a(i), "") 
    Next i 
    ol = 0 
    While Len(arr2) <> ol 
     ol = Len(arr2) 
     arr2 = Replace(arr2, ",,", ",") 
    Wend 
    If Left(arr2, 1) = "," Then arr2 = Mid(arr2, 2) 
    MsgBox arr2 
End Sub 
+0

Я думаю второй параметр должен быть arr1 в функции replace. Кроме того, я не думаю, что это учитывает ведущее ','. –

+0

Исходное сообщение было опубликовано с arr и arr2 и было отредактировано после моего ответа. – h2so4

+0

Ahh, это объяснило бы Это. –

Смежные вопросы