首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在VBA中匹配字符串中的单个单词

在VBA中匹配字符串中的单个单词
EN

Stack Overflow用户
提问于 2017-03-17 00:26:20
回答 3查看 1.9K关注 0票数 1

这里的Excel 2013 --我试图将D单元格中的值与C单元中的值相匹配,这一部分让我把头发拔了出来,那就是,如果C栏中存在一个单词,那么它就应该从D列中删除。

例如

代码语言:javascript
运行
复制
Column C          Column D
Red Hairy Hats    Hairy Cowpies

由于这两个字段都包含单词Hairy,因此应该更新为如下所示

代码语言:javascript
运行
复制
Column C          Column D
Red Hairy Hats    Cowpies

我无法发现如何在Excel中进行字符串比较的通配符匹配。我有一个完全匹配的语法,但是如何才能像上面的示例那样从字符串中执行单个单词呢?

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2017-03-17 00:52:20

代码语言:javascript
运行
复制
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 Function
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42847137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档