我在一个项目中打开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
要保存在其他目录中的档案。
1条答案
按热度按时间mklgxw1f1#
Workbooks(“Submission File.xlsx”)错误。括号中的索引应该是数字。将该行修改为以下内容,您的代码应该可以正常工作
此外,您正在Access中测试Excel VBA。Access会自动追加第一行(Option Compare Database)。如果将整个函数复制到Excel的VBA编辑器中,请排除第一行;则可以运行该函数,ExcelVBA将显示导致错误的确切行。
熟悉VBA编辑器中的“立即”窗口也是一件好事。遇到错误时,单击“传递错误消息”并在“立即”窗口中键入以下代码会给予您一些提示。