首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel VBA .Find引发运行时错误'91‘。

Excel VBA .Find引发运行时错误'91‘。
EN

Stack Overflow用户
提问于 2021-11-18 22:12:12
回答 2查看 132关注 0票数 1

我写了大量的代码,这是可行的,所以我作为傻瓜决定重写它,使之更漂亮。当我在这里问问题的时候,你已经发现到处都有错误。

无论如何,我使用这部分代码找到了一些文本字符串,其中STRING_I_NEED是Dim作为字符串。

代码语言:javascript
运行
复制
If ( Sheet2.Columns(2).Find(STRING_I_NEED, lookAt:=xlWhole).Value = "") Then
              'Do something
    
    Else ' Do something else
    End If

此外,我还使用另一个IF在另一列(3)中找到相同的字符串。

如果列中存在字符串(它们中的任何一个),代码就会工作。如果没有,我会得到错误代码'91‘。我搜索了所有地方,尝试用变量替换sheet.columns.find.value,并在变量名称之前使用"Set“。

这里唯一的问题是:为什么它工作在以前版本的保存文件,而不是在新的“重写”版本的文件。(新的是保存旧文件,用不同的名称保存旧代码,删除旧代码,在里面复制新文件)提到的代码部分是相同的

EN

回答 2

Stack Overflow用户

发布于 2021-11-18 22:54:29

使用Find Method

使用变量

  • Find method将返回一个单元格范围引用或Nothing。要控制这一点,使用变量非常重要。

代码语言:javascript
运行
复制
Dim fCell As Range
Set fCell = Sheet2.Columns(2).Find(What:=STRING_I_NEED, LookAt:=xlWhole)
If fCell Is Nothing Then ' string not found
    ' Do something
Else ' string found
    ' Do something else
End If

' or if you want to switch the order of the statements:

Dim fCell As Range
Set fCell = Sheet2.Columns(2).Find(What:=STRING_I_NEED, LookAt:=xlWhole)
If Not fCell Is Nothing Then ' string found
    ' Do something
Else ' string not found
    ' Do something else
End If

A吨Argumets

  • 还有附加参数的问题,在本例中,LookInSearchDirection是重要的参数(后者不言自明)。由于使用的是xlWhole,所以在隐藏单元格(行、列:通常是行)时,使用LookIn参数的参数xlFormulas,可以防止Find方法失败。请访问上面的链接,以进一步研究该材料(我已访问过它数十次)。
票数 1
EN

Stack Overflow用户

发布于 2021-11-18 22:20:52

尝试从公式中删除".Value =“并重新运行宏。

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

https://stackoverflow.com/questions/70027400

复制
相关文章

相似问题

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