运行宏时,Excel不在行中,因为它位于XLS中。
我想一开始将文件另存为XLSX,然后使宏在刚刚保存的XLSX文件上运行。它的名称应与XLS相同。
我的宏在另一个Excel工作簿中。我输入“ C2”要使用的Excel工作簿的路径,然后运行宏。
我有以下代码另存为XLSX,但它给了我一个错误:
aWbookIworkWith.SaveAs Filename:=myFileName, FileFormat:=xlOpenXMLWorkbook
错误是:
运行时错误'1004':
无法访问该文件。请尝试以下方法之一:
•确保指定的文件夹存在。
•确保包含文件的文件夹不是只读的。
•确保文件名不包含以下任何字符:<>? []:|或*
•确保文件名/路径名不超过218个字符。**
答案 0 :(得分:2)
尝试使用与原始名称相同的名称,但让FileFormat参数确定文件扩展名。
dim myFileName as string
if lcase(right(aWbookIworkWith.fullname, 4)) = ".xls" then
myFileName = left(aWbookIworkWith.fullname, len(aWbookIworkWith.fullname)-4)
aWbookIworkWith.SaveAs Filename:=myFileName, FileFormat:=xlOpenXMLWorkbook
else
debug.print "not an XLS workbook"
end if
当然,包含此代码的VBA项目不应与aWbookIworkWith放在同一工作簿中,因为XLSX不能包含VBA项目。为此,请使用XLSM或XLSB文件格式。