Range.Find在VBA Excel中

时间:2015-02-22 22:25:23

标签: excel vba excel-vba

我正在尝试使用此说明在Excel工作表中执行“查找”:

Set Found = Columns(2).Find(What:=value_to_find, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

但我收到错误“运行时错误'13':类型不匹配”。

如果我使用Range(“A1:H1”)而不是Columns(2),我没有收到任何错误,但我认为它们都是Range类型。

我的目标是使用一个Range变量,在脚本的开头我根据用户的选择对它进行增值。

2 个答案:

答案 0 :(得分:0)

正如@barrowc评论的那样。

虽然不确定具体要求,但仍有效:

Sub xxx()

Dim value_to_find As String
value_to_find = "fooBar"

Dim r As Range
Set r = ActiveCell.EntireColumn.Find( _
    What:=value_to_find, _
    After:=ActiveCell, _
    LookIn:=xlFormulas, _
    LookAt:=xlPart, _
    SearchOrder:=xlByRows, _
    SearchDirection:=xlNext, _
    MatchCase:=False, _
    SearchFormat:=False)

MsgBox r.Address

End Sub

enter image description here

答案 1 :(得分:0)

[解决] 非常感谢大家,我用拉尔夫的支持解决了我的问题。

  

变量Found(在您的代码中)必须是variant类型。因此,如果您明确将Dim Found设置为variant,那么您的代码应该可以正常工作。