我是 VBA 的新手,從 Python 過來的。我正在嘗試打開 Excel 并在不同時間使用多張作業表中的資訊來自動化 Word 檔案。從整個除錯程序中區域變數的狀態來看,Excel似乎啟動成功,Workbook物件也分配成功。但是,當“DB Schedules”作業表被激活時,ActiveSheet 變數保持為空并且無法使用屬性“Name”,而是拋出“Object Required”錯誤并跳轉到 finally 塊。作業簿的路徑和作業表的名稱都是正確的,但即使在激活任意作業表之前,ActiveSheet 變數也是空的。已知該作業表包含資訊,為了確定起見,我嘗試了多個檔案。下面是復制問題的代碼。
Sub CompileReport()
Dim XLInstance As Object
Dim XLWorkbook As Object
Dim XLPath As String
XLPath = "C:\Users\SaracchiG\OneDrive - AECOM\Documents\M11 Jn7A\GC300 Certificates\" & _
"Construction Compliance\Certificates Data Project_Name.xlsx"
On Error Resume Next
Set XLInstance = GetObject(, "Excel.Application")
XLInstance.Quit
If Err Then
Set XLInstance = CreateObject("Excel.Application")
End If
On Error GoTo Finally
Set XLWorkbook = XLInstance.Workbooks.Open(XLPath, ReadOnly:=True)
'Testing it all works (doesn't!)
XLWorkbook.Worksheets("DB Schedules").Activate
MsgBox ActiveSheet.Name
MsgBox ActiveWorkbook.Name
'Do some stuff with different sheets
Finally:
XLWorkbook.Close
XLInstance.Quit
End Sub
uj5u.com熱心網友回復:
您不必激活作業表即可使用它
'Do some stuff with different sheets
With XLWorkbook.Worksheets("DB Schedules")
MsgBox .Name
MsgBox .Parent.Name
End With
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/346664.html
