excel “另存为”出现下标超出范围错误

jq6vz3qz  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(148)

我在一个项目中打开Excel文件并将其保存在另一个文件夹中。在调用SaveAs之前一切正常。我可以保存文件,但不能使用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

要保存在其他目录中的档案。

mklgxw1f

mklgxw1f1#

Workbooks(“Submission File.xlsx”)错误。括号中的索引应该是数字。将该行修改为以下内容,您的代码应该可以正常工作

'Try 1
    xlWB1.Application.Workbooks(1).SaveAs FileName:="C:\Submission File3", FileFormat:=xlWorkbookNormal

此外,您正在Access中测试Excel VBA。Access会自动追加第一行(Option Compare Database)。如果将整个函数复制到Excel的VBA编辑器中,请排除第一行;则可以运行该函数,ExcelVBA将显示导致错误的确切行。
熟悉VBA编辑器中的“立即”窗口也是一件好事。遇到错误时,单击“传递错误消息”并在“立即”窗口中键入以下代码会给予您一些提示。

?xlWB1.Application.Workbooks(1).Name
C:\Submission File.xlsx

相关问题