首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解决"Object Variable or With Block Variable not set“错误?

如何解决"Object Variable or With Block Variable not set“错误?
EN

Stack Overflow用户
提问于 2021-05-18 06:55:21
回答 1查看 39关注 0票数 0

我的代码如下:

代码语言:javascript
运行
复制
Sub intersection_1()
Dim rg1 As Range
Dim rg2 As Range
Set rg1 = Range("A:A")
Set rg2 = Range("5:5")
Intersect(Worksheets("Machine output").Range("21:21").Find(Sheets("History_1").Range("$D$4")), rg2).Select
End Sub
EN

Stack Overflow用户

发布于 2021-05-18 09:08:36

当你在VBA中摸索的时候,最好是有条不紊地去做,也就是说,不要试图在一个命令中混用FindSelect。首先查找,只有在找到后才选择。对Find输入和Find输出应用相同的原则。确定要在独立于开始搜索的代码行中查找的内容。

当然,还要为Find函数本身创建所需的透明性。它有很多论据。你会发现他们解释了here,它将帮助你写出清晰的代码,如果你有条不紊地列出他们,你可以很容易地检查每一个。如果您遵循这些建议,您的代码可能如下所示。

代码语言:javascript
运行
复制
Sub FindAndSelect()

    Dim SearchItem  As Variant              ' criterium to look for
    Dim DataRng     As Range                ' the range to search in
    Dim Fnd         As Range                ' the cell found
    
    SearchItem = Worksheets("History_1").Cells(4, "D").Value
    Set DataRng = Worksheets("Machine Output").Rows(21)
    Set Fnd = DataRng.Find(What:=SearchItem, _
                           After:=DataRng.Cells(1), _
                           LookIn:=xlValues, _
                           Lookat:=xlWhole, _
                           Searchorder:=xlByRows, _
                           SearchDirection:=xlNext, _
                           MatchCase:=False)
    If Not Fnd Is Nothing Then
        MsgBox "Searchitem was found at " & Fnd.Address(0, 0)
    Else
        MsgBox "SearchItem was not found."
    End If
End Sub

以上所有代码都等同于您的最后一行代码,但仍然省略了Select。如果搜索成功,则输出将是'Machine Output'!21:21中找到SearchItem的单元格地址。如果要选择该单元格,命令将为Fnd.Select

您的代码不会暗示该结果与rg1或rg2的关系。但是,如果您继续有条不紊地前进,每行新代码一小步,我相信您将能够建立一个服务于您的目的的连接。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67577942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档