从function区进行表单初始化 – 默认为应该是不活动的工作簿

我一直在Excel中build立我的第一个VBA数据库应用程序。 我创build了我的表单 – “Frmweeklytimesheet”,它捕获一些input的数据,并将这些数据移动到同一工作簿中的表2中。

我希望能够打开此工作簿并从“function区”初始化表单。 所以我定制了function区并添加了一个链接的button来运行打开工作簿的Macro 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 

所以这里是我的问题 – 这个工作,当我没有一个开放的工作簿,我可以点击/selectfunction区中的button,它都打开/按计划运作。 但是,如果有另一个工作簿(让我们称之为“wbk2”)打开,它将正确地打开工作簿“TestDataBase.xlsm”,但表单不断引用“wbk2”。

任何build议,我是一个新的,所以任何帮助,非常感谢。

Tks S.

在每个工作簿中有一个单独的Workbook_Open,您应该能够通过引用Workbook_Openmacros的工作簿来设置窗体的所有者。

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