VBA错误424调用工作簿中的子对象时需要对象\u打开
我对vba很陌生。打开文档时,我遇到424 Ojbect必需错误。我尝试使用callsubname,但没有任何区别 请让我知道我还能发送什么或解释什么 在此工作簿中找到的代码:VBA错误424调用工作簿中的子对象时需要对象\u打开,vba,excel,Vba,Excel,我对vba很陌生。打开文档时,我遇到424 Ojbect必需错误。我尝试使用callsubname,但没有任何区别 请让我知道我还能发送什么或解释什么 在此工作簿中找到的代码: Private Sub Workbook_Open() Sheet1.Worksheet_Activate//<- Object Required Sheet2.Worksheet_Activate Sheet3.Worksheet_Activate Sheet4.Worksheet_Act
Private Sub Workbook_Open()
Sheet1.Worksheet_Activate//<- Object Required
Sheet2.Worksheet_Activate
Sheet3.Worksheet_Activate
Sheet4.Worksheet_Activate
Sheet5.Worksheet_Activate
Sheet6.Worksheet_Activate
Sheet7.Worksheet_Activate
...
提前谢谢。只需将其更改为
Sheet1。激活
即可调用该事件。您不应该手动调用事件处理程序,但这不是出现该错误的原因;通过将方法公开
您已经将其公开到Sheet1
的界面上,使这些调用完全“合法”——因此毫无疑问,这些方法确实会被调用
转到工具/选项/常规/错误捕获,并将其设置为在未处理错误时中断
然后,您应该更好地了解哪一条语句正在爆炸,最有可能位于以下语句之一的某个位置:
Me.initReqLink
Me.initVersion
Me.initCbApplicaiton
…你还没有发布
旁注,
Call
没有什么区别,因为它是一种过时的语法,自从很久以前隐式调用语法出现以来就没有任何用途了。您永远不需要显式的Call
语句。从不。您是否将表1声明为工作表?“ThisWorkbook.Worksheets(“Sheet1”)。默认情况下,事件处理程序是私有的
,其原因是:它们不能像这样手动调用,请参阅@danieltakeshiSheet1
将是CodeName
标识符,是VBA为Excel项目中的每个工作表创建的一个自由的全局范围对象变量标识符。无需每次都声明它并从此工作簿中获取它。此外,按名称获取工作表是非常脆弱的,因为用户可以一时兴起重命名工作表。@Mat'smugh我不知道!感谢您的解释。非常确定事件处理程序确实被调用了。OP的IDE可能没有突破类模块,这隐藏了真正的问题。但让Excel调用事件而不是显式调用事件的做法值得称赞。
Me.initReqLink
Me.initVersion
Me.initCbApplicaiton