3

我有一张成本表,里面有很多宏。其中一个宏是在工作表底部添加一个新行项目。我想输入一个 If 代码,说明如果我添加的项目以文本“自定义”开头,并在我希望它找到该单元格并选择它之后带有空格。下面是我正在尝试的代码,但它使用类型不匹配进行调试并突出显示 Custom = Range("B:B").Value 行。任何帮助深表感谢。

 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
4

1 回答 1

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
于 2013-04-19T17:41:37.457 回答