通过VBA在主字符串中搜索子字符串

时间:2019-08-08 11:20:52

标签: excel vba

在下面的代码中,我正在尝试实现模式匹配。

下面的快照是Sheet2中的数据。我有 ShortDescription ,它是主字符串,在 Inc No

中是相应的数字

enter image description here

另一个快照来自Sheet3。我有关键字,这是我想在Sheet2的 ShortDescription 中找到的子字符串,而 Output 是所需的输出,它是所有对应的 Inc No (否)针对在主字符串中找到的值。

enter image description here

到目前为止,我已经编写了以下代码:

Option Explicit

Private Sub CommandButton1_Click()
Dim str2, Cell, intVal As Variant
str2 = ThisWorkbook.Sheets("Sheet3").Range("A2").Value
For Each Cell In ThisWorkbook.Sheets("Sheet2").Range("A2:A4")
    intVal = Cell.Value
    If intVal Like "*" & str2 & "*" Then
        MsgBox "Got it"
    End If
    Next Cell   
End Sub

例如,Tushar的主字符串是2倍。 MsgBox即将出现2次。只是在这里检查我的代码是否正常运行。我不知道如何进行。

1 个答案:

答案 0 :(得分:1)

这对我有用。将其分配给您的按钮。但是,最好将其转换为自定义函数,然后将其应用于多个单元格。

Sub x()

Dim str2 As Variant, Cell As Range, s As String

With ThisWorkbook
    str2 = .Sheets("Sheet3").Range("A2").Value
    For Each Cell In .Sheets("Sheet2").Range("A2:A4")
        If Cell.Value Like "*" & str2 & "*" Then
            s = s & vbLf & Cell.Offset(, 1).Value   'add col B number and line feed to the string
        End If
    Next Cell
    .Sheets("Sheet3").Range("B2").Value = Mid(s, 2) 'return final string missing initial line feed
End With

End Sub