Vba 我可以强制使用Excel吗;工作手册“开放式”;通过单击按钮来激活事件

Vba 我可以强制使用Excel吗;工作手册“开放式”;通过单击按钮来激活事件,vba,excel,events,event-handling,Vba,Excel,Events,Event Handling,我知道关于Workbook\u open事件的主题有许多线程并不总是触发。似乎禁用UDF可能与数字证书一样有效 看 但为什么添加数字证书会有帮助呢 作为另一种解决方案,我想知道是否有一种方法可以通过单击按钮来强制启动Workbook\u open事件?这样,当初始打开事件失败时,用户可以刷新屏幕上的组合框等 我尝试添加工作簿\u open作为按钮单击的一部分,但得到一个“子或函数未定义”错误。我想这并不奇怪,因为此事件属于“ThisWorkbook”对象 此工作簿。RefreshAll不起作用

我知道关于
Workbook\u open
事件的主题有许多线程并不总是触发。似乎禁用UDF可能与数字证书一样有效

但为什么添加数字证书会有帮助呢

作为另一种解决方案,我想知道是否有一种方法可以通过单击按钮来强制启动
Workbook\u open
事件?这样,当初始打开事件失败时,用户可以刷新屏幕上的组合框等

我尝试添加
工作簿\u open
作为按钮单击的一部分,但得到一个
“子或函数未定义”
错误。我想这并不奇怪,因为此事件属于“ThisWorkbook”对象

此工作簿。RefreshAll
不起作用


注意:我已经在
工作簿_open
事件中的组合框中添加了额外的编码项,因此如果我可以让刷新正常工作,我希望这些项目会出现

工作簿\u open
处理程序声明为
Public
。非常感谢@Gserg!将
工作簿\u open
更改为
公用子工作簿\u open()
,然后添加以下按钮单击事件工作
专用子工作簿\u刷新\u单击()此工作簿。工作簿\u open End Sub
也可以只使用
运行
而不将其公开:
应用程序。运行“ThisWorkbook.工作簿\u open”
谢谢@Rory!对于
工作簿打开
事件,这可能比使用
公共子事件
效果更好,因为我注意到当“Public”时,
工作簿打开
事件的自动执行不那么可靠。不知道为什么会这样?但是,
Application.Run“ThisWorkbook.Workbook\u Open”
似乎一直在工作!出于安全考虑,可能也值得指定工作簿:
Application.Run“'”&thishworkbook.name&“!thishworkbook.workbook\u Open”
workbook\u Open
处理程序声明为
Public
。非常感谢@Gserg!将
工作簿\u open
更改为
公用子工作簿\u open()
,然后添加以下按钮单击事件工作
专用子工作簿\u刷新\u单击()此工作簿。工作簿\u open End Sub
也可以只使用
运行
而不将其公开:
应用程序。运行“ThisWorkbook.工作簿\u open”
谢谢@Rory!对于
工作簿打开
事件,这可能比使用
公共子事件
效果更好,因为我注意到当“Public”时,
工作簿打开
事件的自动执行不那么可靠。不知道为什么会这样?但是,
Application.Run“ThisWorkbook.Workbook\u Open”
似乎一直在工作!出于安全考虑,可能也值得指定工作簿:
Application.Run“'”&thiswoolk.name&“!thiswoolk.workbook\u Open”