Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Private Const FileName = "\vb打开EXCEL.xls"
Private Sub CommandButton1_Click()
Call UserForm_Initialize
End Sub
'Private Sub Form_Load()
Private Sub UserForm_Initialize()
On Error Resume Next
'If App.PrevInstance Then End '解决重复运行错误
'Me.Show '解决界面显示速度问题(先于Excel)
Set xlApp = GetObject(, "Excel.Application") '判断Excel是否打开
If Err.Number <> 0 Then
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
xlApp.Visible = False '设置EXCEL对象不可见
End If
Err.Clear
'● 这是Excel
Debug.Print (ThisWorkbook.Path)
'If Dir(ThisWorkbook.Path & "\我的封装工程.xls") = "" Then
If Dir(ThisWorkbook.Path & FileName) = "" Then '判断文件是否存在
MsgBox ThisWorkbook.Path & FileName & "未找到!", vbOKOnly, "友情提示"
End
End If
'● 这是VB
Debug.Print (App.Path)
If Dir(App.Path & "\我的封装工程.xls") = "" Then
' If Dir(App.Path & FileName) = "" Then '判断文件是否存在
MsgBox App.Path & FileName & "未找到!", vbOKOnly, "友情提示"
' End
End If
'判断文件是否打开
For Each xlBook In xlApp.Workbooks
If xlBook.Name = Mid(FileName, 2) Then
MsgBox "文件已打开!请不要重复打开。", vbOKOnly, "友情提示": xlBook.Activate
xlApp.WindowState = xlMaximized: End
End If
Next
Set xlBook = xlApp.Workbooks.Open(App.Path & FileName) '打开工件簿文件
xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏
'xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next '防止文件运行宏后已关闭的情况
xlApp.Visible = True
End Sub
Private Sub Form_Click()
Unload Me
End Sub