0
我有一個帶有字母數字數據的大型Excel電子表格。我希望能夠並排比較不同行中的兩個單元格,並返回另一個單元格中的差異。比較Excel電子表格中單獨單元格中的字符串?
例如我在單元格B2中,「湯姆,裏克,邁克,我」以及單元格C2中的「邁克,裏克」。我需要 將單元格C2與單元格B2進行比較,並返回單元格D2中的差異,在這種情況下,這些差異是字符「tom,I」。它們以「,」分隔,並且可以按照您在示例中看到的順序排列。
我有一個帶有字母數字數據的大型Excel電子表格。我希望能夠並排比較不同行中的兩個單元格,並返回另一個單元格中的差異。比較Excel電子表格中單獨單元格中的字符串?
例如我在單元格B2中,「湯姆,裏克,邁克,我」以及單元格C2中的「邁克,裏克」。我需要 將單元格C2與單元格B2進行比較,並返回單元格D2中的差異,在這種情況下,這些差異是字符「tom,I」。它們以「,」分隔,並且可以按照您在示例中看到的順序排列。
將每個字符串拆分爲項目列表。將第一個列表中的每個項目與第二個列表進行比較,將不在第二個列表中的項目添加到第三個列表中。您可能需要將其展開以處理包含空格和逗號的列表。
Public Function ListDiff(names1 As String, names2 As String) As String
Dim list1() As String
Dim list2() As String
list1 = Split(names1, ",")
list2 = Split(names2, ",")
list3 = ""
For i = LBound(list1) To UBound(list1)
If Not existsInList(list2, list1(i)) Then
list3 = list3 & "," & list1(i)
End If
Next i
'remove leading comma
ListDiff = Right(list3, Len(list3) - 1)
End Function
Public Function existsInList(list() As String, item As String) As Boolean
exists = False
i = LBound(list)
bFound = False
While i <= UBound(list) And Not bFound
If list(i) = item Then
bFound = True
End If
i = i + 1
Wend
existsInList = bFound
End Function
你試過了什麼?如果你還沒有嘗試過任何東西,那麼你可能想用'SPLIT'或'REPLACE'來看看它是如何工作的? –