的信息:
我有一个名为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
我觉得我不会以正确的方式解决这个问题......
对此有任何帮助将不胜感激!
答案 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“”(排除第一个和最后一个引号并替换为真实文件路径你的档案。