VBA另存为特殊字符错误

时间:2015-07-22 09:43:26

标签: vba excel-vba excel

以下代码运行完美。 对于内部报告跟踪目的,我已经附加了" [1944]"到文件名的前面。 它现在正在回击"运行时错误' 1004'"在我身边。

错误1004清单

  • 文件夹存在
  • 文件不是只读
  • Len(文件路径)< 218

上一部分引用不使用以下字符 < > ? []:|或者*

但是如果我转到文件夹位置我可以使用[]重命名它没问题。 我甚至可以用这个标题文件并使用VBA启动它 那么为什么我不能用它保存文件。

有人为我找到了解决方法吗?

非常感谢!

ActiveWorkbook.SaveAs Filename:= _
    strfilepath & "[1944] TSA34_MI_" & strdt & ".xlsb" _
    , FileFormat:=xlExcel12, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False

2 个答案:

答案 0 :(得分:3)

我能想到的唯一解决方法是在文件关闭后重命名。

要执行此操作,您可以使用Name语句。请参阅MSDN documentation

Name "C:\Users\lturner\Documents\myWorkbook.xlsb" As "C:\Users\lturner\Documents\[1]myWorkbook.xlsb"

除此之外,我认为不可能在名称中使用方括号保存工作簿。

答案 1 :(得分:2)

方括号是Windows文件名的合法字符,但由Excel专门处理,因此也是VBA。

要了解原因,请打开两个工作簿并在第一个选择一个单元格并输入公式“= SUM(”,然后单击第二个工作簿中的单元格。您的公式现在看起来像这样“= SUM([Workbook2] ] Sheet1!A1)“。方括号用作工作簿名称分隔符。