我正在努力弄清楚是否應該在對其進行多次操作後關閉Excel。如果我已經打開了Excel(A.xls,D.xls)並啓動我的Word宏,它從活動文檔獲取值並將其轉儲到B.xls中,我希望我的宏關閉B.xls,但保留A和C.但是,如果我不要已打開A和C,我希望我的宏完成運行後完全關閉Excel。檢查Excel是否從Word打開
我試過多種方式與出成功來實現這一目標:
Dim oXLApp As Object
' Get excel object
closeExcelMy = FileHandling.setExcelObject(oXLApp)
'*********************************************************
'********* define if we need to close excel after sub is done
'***********************************************************
Function setExcelObject(ByRef oXLApp As Object) As Boolean
On Error GoTo notOpen
setExcelObject = False
Set oXLApp = GetObject(, "Excel.Application")
' On Error GoTo 0
' If oXLApp Is Nothing Then
' Set oXLApp = CreateObject("Excel.Application")
' setExcelObject = True
' End If
notOpen:
Set oXLApp = CreateObject("Excel.Application")
setExcelObject = True
'~~> Hide Excel
'oXLApp.Visible = True
' If oXLApp.Workbooks.Count < 1 Then
' setExcelObject = True
' End If
End Function
我希望我的函數返回true
如果我能以其他方式false
關閉Excel。
如何從Word中的VBA中實現此目的?
的問題是,我不知道名字A和C(用戶隨機打開的工作簿數量),也許我可以循環收集工作簿?我使用'Set oXLApp = CreateObject(「Excel.Application」)'來避免設置對象庫的引用。這是因爲我在normal.dotm中傳播宏的原因,並且如果版本更改爲15,它將失敗或? – skatun
我通過excel應用程序集合中的工作簿發佈循環的第二個代碼。但是,如果您不知道工作簿A和C的名稱,我不確定您可以做什麼... –