在单元格 VBA 中查找字符串

时间:2021-07-14 14:30:28

标签: excel vba

我正在寻找一个包含 DPD End 的单元格。我希望它找到最右边的值,因为我的行包含 DPD End Jan、Feb 等,所以我正在寻找最新的值,该值将位于后面的列中。

我目前看到一个错误,即使我添加了通配符:

With ThisWorkbook.Worksheets(1).Rows(1)
    Set b = .Find("DPD End*", LookIn:=xlPrevious)
MsgBox b.Column
End With

1 个答案:

答案 0 :(得分:1)

您应该使用 LookIn 来指定搜索方向,而不是使用 SeachDirection 来指定所查找的单元格中的内容类型。

此外,要从右向左查看(并找到最远/最右侧的列),您需要将最后一个单元格指定为起始单元格,这里使用 .UsedRange 尽可能避免检查空白单元格。

请尝试以下代码(未测试):

With ThisWorkbook.Worksheets(1)
    Set b = .Rows(1).Find("DPD End*", After:= .Cells(1,.UsedRange.Columns.Count), _
                                      LookIn:=xlValues, _
                                      SearchDirection:=xlPrevious)
End With
If Not b Is Nothing Then
    MsgBox "Found match in column " & b.Column & "."
Else
    MsgBox "No match found."
End If

注意:如果您的工作表NOT从第一列开始,您需要将第一个使用的列索引添加到 .UsedRange.Columns.Count