请完整阅读并理解此程序运行正常,直到我改变了隐藏工作簿的方式。
我有一个程序在我使用Application.Visible = False
并且只显示用户表单时运行良好。我开始意识到这会隐藏所有Excel窗口,而不仅仅是我正在使用的窗口。这将分发到整个部门,隐藏所有Excel窗口是不可接受的。
我开始使用ActiveWindow.Visible = False
,但是当我在工作表中搜索值(Cells.Find
)时,我现在收到错误91.
修改工作表不是一个选项,我正在搜索的值可以在工作表中移动,具体取决于添加或删除的内容。
出于这个原因, Cells.Find
非常出色。我需要找到另一种搜索页面的方法,或者找到隐藏工作表的另一种方法。请帮忙
答案 0 :(得分:3)
当窗口不可见时,Cells
引用不符合工作表对象(除非合格,Cells
引用ActiveSheet.Cells
且没有ActiveSheet
) ,所以你可以这样做:
Sheets("sheetname").Cells.Find ' modifying "sheetname" as needed
这也可能失败(出现相同的错误),或者如果有其他打开的工作簿,也可能产生错误的结果,因此最好完全符合工作簿的资格,例如:
Workbooks("workbookname").Sheets("sheetname").Cells.Find(...
根据以下答案,在对可能为Find
的对象执行其他方法/属性调用之前,测试Nothing
的结果仍然是个好主意:
Find command giving error: "Run-time Error '91': Object variable or With block variable not set"