我有一张包含很多宏的成本单。其中一个宏是在工作表底部添加新的订单项。我想输入一个If代码,说如果我添加的项目以文本“Custom”开头,后面我希望它找到该单元格并选择它。下面是我正在尝试的代码但它调试类型不匹配并突出显示Custom = Range(“B:B”)。值行。非常感谢任何帮助。
Dim Custom As String
Custom = Range("B:B").Value
If Custom Like "Custom *" Then
Cells.Find(What:="Custom ", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Activate
ActiveCell.FormulaR1C1 = ("Test")
End If
答案 0 :(得分:9)
您无需使用LIKE
。直接使用.Find
请参阅此示例
请注意LookAt:=xlPart
的使用。这将确保如果单元格内容中的任何位置"Custom "
,代码将捕获它。
Sub Sample()
Dim ws As Worksheet
Dim aCell As Range
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
Set aCell = .Columns(2).Find(What:="Custom ", LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not aCell Is Nothing Then
aCell.Value = "Test"
Else
MsgBox "Not Found"
End If
End With
End Sub