我一直在Excel中构建我的第一个VBA数据库应用程序。我已经创建了我的表单 - “Frmweeklytimesheet”,它捕获了一些输入的数据,并将该数据移动到同一工作簿中的第2页。
我希望能够打开此工作簿并从“功能区”初始化表单。所以我自定义了功能区并添加了一个链接按钮,用于运行宏CallTimesheet打开工作簿 - 这是代码。
Sub CallTimesheet()
Dim FilePath As String
Workbooks.Open "S:\Shanes Stuff\Excel Data Base Stuff\TestDataBase.xlsm"
'Frmweeklytimesheet.Show >> This was moved into the Microsoft Excel Objects folder ThisWorkBook to execute on Open
End Sub
此时我尝试打开表单并且它在此处不起作用,因此该行被注释掉以供参考。
因此,我将form.Show语句移动到以下代码下的Microsoft Excel Objects文件夹 -
Private Sub Workbook_Open()
Frmweeklytimesheet.Show
End Sub
所以这是我的问题 - 当我没有打开的工作簿时,这可以工作,我可以单击/选择功能区中的按钮,它全部按计划打开/运行。但是,如果有另一个工作簿(让我们称之为“wbk2”)打开,它将正确打开工作簿“TestDataBase.xlsm”,但Form继续引用“wbk2”。
任何建议,我是新手,所以任何帮助都非常感谢。
韩国社交协会 S上。
答案 0 :(得分:0)
在每个工作簿中使用单独的Workbook_Open,您应该能够通过引用调用Workbook_Open宏的工作簿来设置表单的所有者。
Private Sub Workbook_Open()
thisworkbook.Frmweeklytimesheet.Show
End Sub