【问题标题】:Save XLS to XLSM将 XLS 保存到 XLSM
【发布时间】:2018-10-23 08:22:03
【问题描述】:

运行宏时,Excel 会用完行,因为它在 XLS 中。

我想在开始时将文件保存为 XLSX,然后让宏在刚刚保存的 XLSX 文件上运行。它应该与 XLS 同名。

我的宏在另一个 Excel 工作簿中。我输入“C2”我要使用的 Excel 工作簿的路径,然后运行宏。

我有以下保存为 XLSX 的代码,但它给了我一个错误:

aWbookIworkWith.SaveAs Filename:=myFileName, FileFormat:=xlOpenXMLWorkbook

错误是:

运行时错误“1004”:
无法访问该文件。请尝试以下方法之一:
• 确保指定的文件夹存在。
• 确保包含该文件的文件夹不是只读的。
• 确保文件名不包含以下任何字符: ? [ ] : |或 *
• 确保文件/路径名不超过 218 个字符。**

【问题讨论】:

  • ...请问myFileName的值是什么?
  • 它应该有一个特定的值吗?我必须把它放在某个地方吗?我的意思是文件的值名称与我第一次打开的 XLS 中的相同

标签: excel vba


【解决方案1】:

尝试使用与原始名称相同的名称,但让 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 文件格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    相关资源
    最近更新 更多