在下面的代码中,我正在尝试实现模式匹配。
下面的快照是Sheet2中的数据。我有 ShortDescription ,它是主字符串,在 Inc No
中是相应的数字另一个快照来自Sheet3。我有关键字,这是我想在Sheet2的 ShortDescription 中找到的子字符串,而 Output 是所需的输出,它是所有对应的 Inc No (否)针对在主字符串中找到的值。
到目前为止,我已经编写了以下代码:
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次。只是在这里检查我的代码是否正常运行。我不知道如何进行。
答案 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