当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
请确保你的宏已启用。
详情请参阅微软文档:打开工作簿时自动运行宏。
除了 @Pᴇʜ 的回答,您还可以在标准模块中使用以下过程:
Sub Auto_Open()
'// Your code here...
End Sub
Auto_Open
事件,因为这只是为了向后兼容,并且在未来的版本中可能会被删除。 - Pᴇʜ您正在尝试创建一个在打开工作簿时激活的事件过程。在VBA编辑器中转到thisworkbook,从代码窗口上方的下拉列表中选择工作簿打开过程,或者您可以手动输入:
Private Sub Workbook_Open()
End Sub
ThisWorkbook
中还是模块中?使用像上面那样的 MsgBox 进行测试。如果启用宏,这个 必须 能够工作。 - PᴇʜThisWorkbook
中才能正常工作。请查看我在答案中提供的Microsoft文档链接,按照步骤操作。 - Pᴇʜ