Public Function SameStuff(s1 As String, s2 As String) As Boolean
Dim bad As Boolean
SameStuff = False
ary1 = Split(Replace(s1, " ", ""), ",")
ary2 = Split(Replace(s2, " ", ""), ",")
Length1 = UBound (ary1)
Length2 = UBound(ary2)
k=1
If Length1<= Length2 and Length1<>0 then
for i=0 to Length1-1
If ary1(i) = ary2(i) then
ary3(k,i) = ary1(i)
End If
Next i
k=k+1
else
Exit function
End If
End Function
Здесь я беру значение из диапазона («A1») - (имеет 3 слова) и значение Range («A2») - (имеет 4 слова). Разделите их, найдя пространство между словами и сохраните их в массивах. Если длина одного массива равна 3, а другое - 4, будут сравниваться 3 слова из обоих массивов. Если найдено 3 слова, то Range («B1») и Range («B2») должны иметь имя 3-го слова i.e Range («A1»). Я думаю, что эта логика будет хорошо работать, чтобы найти похожие имена, такие как «ABC DEF HIJ» в A1 и «ABC DEF HIJ Limited» в A2.Как заменить несколько одинаковых значений на одно значение
Я не могу выразить это кодом.
Длина слова не останется прежней i.e 3,4.
Что вы хотите сделать с результатом, ary3? Вы заменяете меньшую ячейку из трех слов более длинной ячейкой из четырех слов, если совпадают первые три слова? –