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

时间:2013-09-12 23:40:41

标签: excel excel-vba vba

的信息:

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

此文件包含一个名为UserForm1的用户窗体,该文件在打开时会自动加载。

打开文件时,在用户窗体后面的背景中也可以看到名为Demo.xlsm的工作簿。

问题:

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

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

第二:我希望只有userform可见。 (我不需要/使用工作簿/工作表在后台可见。)

第三:如果可以在显示用户表单的同时最小化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

我觉得我不会以正确的方式解决这个问题......

对此有任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:2)

这就是我的工作,它很有趣。我有一张漂亮的大图片,图片有一个宏,即:

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

这会在我自己的实例中打开我的文件,我可以根据需要关闭它,它不会干扰任何其他打开的文件。

答案 1 :(得分:0)

对于您的Workbook_Open,请执行以下操作,以便与您联系。

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

我对此进行了测试,并且任务管理器中还有另一个“Excel.exe”,所以它应该是正确的。

答案 2 :(得分:0)

这对我有用。将此代码复制粘贴到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

答案 3 :(得分:0)

将快捷方式复制到Excel然后右键单击,选择属性并添加到目标末尾“ - ”C:\ Demo.xlsm“”(排除第一个和最后一个引号并替换为真实文件路径你的档案。