从功能区初始化表单 - 默认为应该是非活动工作簿

时间:2015-05-02 23:32:46

标签: excel vba excel-vba

我一直在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上。

1 个答案:

答案 0 :(得分:0)

在每个工作簿中使用单独的Workbook_Open,您应该能够通过引用调用Workbook_Open宏的工作簿来设置表单的所有者。

Private Sub Workbook_Open()
    thisworkbook.Frmweeklytimesheet.Show
End Sub