这里的Excel 2013 --我试图将D单元格中的值与C单元中的值相匹配,这一部分让我把头发拔了出来,那就是,如果C栏中存在一个单词,那么它就应该从D列中删除。
例如
Column C Column D
Red Hairy Hats Hairy Cowpies由于这两个字段都包含单词Hairy,因此应该更新为如下所示
Column C Column D
Red Hairy Hats Cowpies我无法发现如何在Excel中进行字符串比较的通配符匹配。我有一个与完全匹配的语法,但是如何才能像上面的示例那样从字符串中执行单个单词呢?
Dim i As Long
Dim resArry
dataArry = Cells(1).CurrentRegion
ReDim resArry(UBound(dataArry, 1) - 1, 1)
For i = 2 To UBound(dataArry, 1)
If InStr(1, dataArry(i, 3), dataArry(i, 4), vbBinaryCompare) Then
resArry(i - 2, 0) = ""
Else
resArry(i - 2, 0) = dataArry(i, 4)
End If
Next
Range("D2").Resize(UBound(resArry, 1)) = resArry发布于 2017-03-17 00:52:20
Private Sub Test()
Dim C As String, D As String
C = "Red Hairy Hats"
D = "hairy cowpies"
Debug.Print RemoveMatches(C, D)
End Sub
Private Function RemoveMatches(C As String, D As String) As String
Dim Sp() As String
Dim i As Integer
Sp = Split(C)
For i = 0 To UBound(Sp)
If InStr(1, D, Sp(i), vbTextCompare) Then
D = Trim(Replace(D, Sp(i), "", Compare:=vbTextCompare))
End If
Next i
RemoveMatches = D
End Functionhttps://stackoverflow.com/questions/42847137
复制相似问题