[英]SaveAs gets a Subscript out of range error
我有一個項目,我正在打開 Excel 個文件並將它們保存在不同的文件夾中。 在調用 SaveAs 之前一切都很好。 我可以保存文件,但無法另存為。 我正在從我所有代碼所在的 MS Access 調用 Excel。 這是我的代碼,其中包含我嘗試過的一些變體。 所有 3 個都產生了相同的錯誤。 我不確定我在這里做錯了什么。
Option Compare Database
Sub Testsave()
Dim objexcel1 As Excel.Application
Dim xlWB1 As Excel.Workbook
Set objexcel1 = CreateObject("Excel.Application")
'objexcel1.DisplayAlerts = False
Set xlWB1 = objexcel1.Workbooks.Open("C:\Submission File.xlsx", ReadOnly:=False)
xlWB1.Application.Visible = True
'Try 1
xlWB1.Application.Workbooks("Submission File.xlsx").SaveAs FileName:="C:\Submission File3", FileFormat:=xlWorkbookNormal
'Try 2
xlWB1.Application.ActiveWorkbook.SaveAs FileName:="C:\Submission File2", FileFormat:=xlWorkbookNormal
'Try 3
xlWB1.Application.ActiveWorkbook.SaveAs "T:\Submission File2.xlsx", AccessMode:=xlExclusive, ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges
xlWB1.Close (True)
End Sub
要保存在另一個目錄中的文件。
Workbooks("Submission File.xlsx") 是錯誤的。 括號中的索引應該是一個數字。 將行修改為以下內容,您的代碼應該可以工作
'Try 1
xlWB1.Application.Workbooks(1).SaveAs FileName:="C:\Submission File3", FileFormat:=xlWorkbookNormal
此外,您正在 Access 中測試 Excel VBA。 Access 會自動附加第一行(選項比較數據庫)。 如果將function整個復制到Excel中的VBA編輯器中,排除第一行; 然后你可以運行 function 和 Excel VBA 將顯示導致錯誤的確切行。
最好也熟悉 VBA 編輯器中的即時 window。 當您遇到錯誤時,單擊傳遞錯誤消息並在立即輸入以下代碼 Window 會給您一些線索。
?xlWB1.Application.Workbooks(1).Name
C:\Submission File.xlsx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.