Я написал фрагмент кода, который сравнивает две строки.Строки имеют следующий вид:
- Первая строка / массив: "ABC; CDE; GBH"
- Вторая строка / массив: "ABC; CDE; GBH; LLL"
Я хочу, чтобы "LLL" находился в третьей ячейке после завершения сравнения.Это просто не даст мне результата, за исключением одного случая, когда в первой строке нет ни одной точки с запятой.Другими словами, первая строка - «ABC» (без точки с запятой), затем она возвращает «CDE; GBH; LLL» в третьем столбце.
Код:
Function CompareTwo(txt As String, txt2 As String) As String
Dim a, b
With CreateObject("Scripting.Dictionary")
.CompareMode = vbTextCompare
For Each a In Split(txt, ";")
For Each b In Split(txt2, ";")
If InStr(Trim(a),Trim(b)) <= 0 then .add Trim(b), nothing
Next b
Next a
If .Count > 0 Then CompareTwo = Join(.keys, ";")
End With
End Function