我知道还有很多其他线程,但我不太了解VBA代码,我似乎无法理解所提供的解决方案。我能够从网上复制一个现有的宏并在我的计算机上使用Excel 2013,但是一旦我在2003年的另一台计算机上尝试它,我就会弹出这个错误。 (运行时错误'1004'对象'_Workbook'的方法'SaveAs'失败了)有人能告诉我需要在代码中更改的内容吗?
Sub ConvertToXlsx()
Dim strPath As String
Dim strFile As String
Dim wbk As Workbook
' Path must end in trailing backslash
strPath = "T:\"
strFile = Dir(strPath & "*.xls")
Application.DisplayAlerts = False
Do While strFile <> ""
If Right(strFile, 3) = "xls" Then
Set wbk = Workbooks.Open(Filename:=strPath & strFile)
wbk.SaveAs Filename:=strPath & strFile & "x", _
FileFormat:=xlOpenXMLWorkbook
wbk.Close SaveChanges:=False
End If
strFile = Dir
Loop
Application.DisplayAlerts = True
End Sub
答案 0 :(得分:2)
问题在于:
FileFormat:=xlOpenXMLWorkbook
。
Excel 2003无法识别(也没有)xlOpenXMLWorkbook
文件格式。
xlExcel8
应该有效。直接来自链接:
这些是Excel 2007中的主要文件格式:
51 = xlOpenXMLWorkbook(2007年没有宏,.xlsx)
52 = xlOpenXMLWorkbookMacroEnabled(2007年有或没有宏,.xlsm)
50 = xlExcel12(2007年的Excel二进制工作簿,有或没有宏,.xlsb)
56 = xlExcel8(Excel 2007中的97-2003格式,.xls)