簡體   English   中英

SaveAs 獲取下標超出范圍錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM