【发布时间】:2019-10-16 16:16:46
【问题描述】:
我想在打开 Excel 工作簿时运行 VBA 代码。
我尝试在代码应该在其中运行的工作表中创建一个公共过程:
Public Sub Workbook_Open
' Some code here
End Sub
工作簿打开时不运行。
应该在其中一个单元格中创建一个组合框,然后用数据库中的信息填充它。
【问题讨论】:
我想在打开 Excel 工作簿时运行 VBA 代码。
我尝试在代码应该在其中运行的工作表中创建一个公共过程:
Public Sub Workbook_Open
' Some code here
End Sub
工作簿打开时不运行。
应该在其中一个单元格中创建一个组合框,然后用数据库中的信息填充它。
【问题讨论】:
确保代码在 VBA 编辑器的 ThisWorkbook 范围内,并且不在在模块或工作表中:
Option Explicit
Private Sub Workbook_Open()
MsgBox "Autorun works!"
'your code here
End Sub
并确保您的macros are enabled。
有关详细信息,另请参阅 Microsoft 的文档:Automatically run a macro when opening a workbook。
【讨论】:
ThisWorkbook 或模块中?使用上面显示的 MsgBox 对其进行测试。如果启用了宏,这必须工作。
ThisWorkbook 中才能正常工作。请参阅我在回答中提供的 Microsoft 文档链接。一步一步来。
除了@Pᴇʜ's answer,您还可以在标准模块中使用以下过程:
Sub Auto_Open()
'// Your code here...
End Sub
【讨论】:
Auto_Open 事件,因为这只是为了向后兼容,并且可能会在未来的版本中被删除。
您正在尝试创建一个在您打开一本书时激活的事件过程。在 VBA 编辑器中转到 thisworkbook 并从编码窗口上方的下拉列表中选择工作簿打开过程,或者您可以手动输入:
Private Sub Workbook_Open()
End Sub
【讨论】: