【发布时间】:2021-06-29 19:36:20
【问题描述】:
我有一个在工作簿集上运行的流程。我试图在关闭文件时修改文件类型。在关闭每个工作簿之前,我正在尝试将其添加到流程的末尾。现在,打开的文件位于 .xlsb 中。我正在尝试将其保存为基本上任何其他格式(.xsls 等)
每当我运行宏时,“SaveAs”命令都会出错。我已经尝试了所有我能想到的方法,只是用相同的名称、不同的文件类型保存文件,但没有运气。
我做错了什么?
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Path = ThisWorkbook.Sheets(1).Range("H6")
If Right(Path, 1) <> "\" Then
Path = Path & "\"
End If
wsheet = ThisWorkbook.Sheets(1).Range("F10")
ThisWorkbook.Sheets(3).Range("A2:B20000").ClearContents
OutLn = 2
Line = 1
Do While ThisWorkbook.Sheets(2).Cells(Line, 1) <> ""
OpnFil = ThisWorkbook.Sheets(2).Cells(Line, 1)
Workbooks.Open fileName:=Path & OpnFil, UpdateLinks:=False
ScanLn = 12
Do While ThisWorkbook.Sheets(1).Cells(ScanLn, 5) <> ""
ThisWorkbook.Sheets(3).Cells(OutLn, 1) = OpnFil
Addr = ThisWorkbook.Sheets(1).Cells(ScanLn, 5)
ThisWorkbook.Sheets(3).Cells(OutLn, 2) = Workbooks(OpnFil).Sheets(wsheet).Range(Addr)
OutLn = OutLn + 1
ScanLn = ScanLn + 1
Loop
Workbooks(OpnFil).SaveAs fileName:=Workbooks(OpnFil).GetBaseName, FileFormat:=51
Workbooks(OpnFil).Close
Line = Line + 1
Loop
End Sub```
【问题讨论】:
-
Workbook没有GetBaseName方法。GetBaseName是FileSystemObject的一个方法。 -
不,也许这是我的问题。我希望它会保存到它从(路径)打开的具有相同文件名的相同扩展名中。
-
我也试过这个
Workbooks(OpnFil).SaveAs fileName:=Workbooks(OpnFil).Name, FileFormat:=51和其他大约一百个哈哈。 -
请记住,
FileFormat必须与扩展名匹配,否则您会收到错误消息。 -
好的,很高兴知道,正在打开的文件是 .xlsb。我要添加的部分内容是将其保存为另一个文件路径 .xls/.xlsx。我想我可以通过添加
FileFormat值来做到这一点。