文件打开时,在Excel的新实例中打开特定的Excel文件

信息:

我有一个名为Demo.xlsm的Excel文件

该文件包含一个名为UserForm1的用户表单,该表单在打开文件时自动加载。

当打开文件时,名为Demo.xlsm的工作簿也可以在用户窗体的后台显示。

问题:

我经常有一个Excel应用程序已经在我的桌面上打开,包含我每天使用的信息的各种工作簿和工作表。 就目前而言,如果我打开Demo.xlsm文件,它将在当前的Excel应用程序以及我正在使用的所有其他工作簿/工作表中打开。

首先:我希望Demo.xlsm文件能够在完全独立的实例/ Excel应用程序中自动打开,而不是其他作品。

第二:我想只有用户窗体可见。 (我没有必要/使用工作簿/工作表在后台可见。)

第三:如果可以让Excel应用程序的第二个实例最小化,同时仍然显示用户窗体,这将是完美的。 (目前,如果我试图最小化Excel应用程序的第二个实例,用户窗体也最小化)

Private Sub Workbook_Open() Dim objExcel Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True UserForm1.Show Application.ScreenUpdating = False Set newBook = Workbooks.Open(Demo.xlsm) Windows(Demo.xlsm).Visible = False Application.ScreenUpdating = True End Sub 

我觉得我不是这样做的

任何帮助,将不胜感激!

对于你的Workbook_Open ,做下面的事情应该让你closures。

 If Application.Workbooks.Count > 1 Then Call Shell(Application.Path & Application.PathSeparator & "excel.exe " & ThisWorkbook.FullName) ThisWorkbook.Close SaveChanges:=False Else UserForm1.Show End If 

我testing了这个,在任务pipe理器中有另一个“Excel.exe”,所以应该是正确的。

这对我有效。 将此代码复制到ThisWorkbook对象中:

 Option Explicit Dim objExcel As Excel.Application Dim FileName As String Public Sub workbook_open() FileName = ThisWorkbook.FullName If vbReadOnly <> 0 Then Exit Sub Else objExcel.Workbooks.Open FileName:=FileName ThisWorkbook.Saved = True ThisWorkbook.Close objExcel.Quit End If End Sub 

这就是我所做的,它很可爱。 我有一个很好的大图片,图片有一个macros,它是:

 Dim appXL As New Excel.Application appXL.Workbooks.Open "G:\All Users\Jurie\Test\Hotel Maintenance V1SE.xlsm" appXL.ActiveWorkbook.Windows(1).Visible = True appXL.Visible = True Workbooks("Hotel Stay Easy Maintenance Program.xlsm").Close SaveChanges:=True ThisWorkbook.Activate 

这将打开我自己的文件中的文件,我可以closures它,而不会影响其他打开的文件。

将快捷方式复制到Excel,然后右键单击,select属性并将其添加到目标“ – ”C:\ Demo.xlsm“”的末尾(排除第一个和最后一个引号,并replace为文件的实际文件path。