SaveAs返回的错误,包含可变文件名/位置

时间:2015-08-14 14:22:04

标签: excel vba excel-vba

我正在尝试使用SaveAs功能将电子表格保存到其他位置。当我对文件名进行硬编码时,文件保存得很好。

但是,由于我每天可以节省大约50个这样的文件,我需要能够区分保存的文件。我尝试将文件名的一部分设置为可变,具体取决于保存文件时的时间戳。 (是的,我知道我可以按照保存的日期/时间对文件夹进行排序,但这些文件也供多人使用,他们可能不知道如何以这种方式使用该功能。)

这会引发错误

  

运行时错误' 1004'方法' SaveAs' objct' _Workbook'失败

代码是:

key3

2 个答案:

答案 0 :(得分:1)

您不能在文件名中使用冒号!

将“格式”更改为:

z = Format(DateTime.Now, "hh-mm dd-MM-YYYY")

或者你喜欢的任何角色而不是“ - ”

如果您希望名称排序很好,请使用YYYY-MM-dd格式:

z = Format(DateTime.Now, "YYYY-MM-dd hh-mm")

有关Windows文件命名约定的信息,请参阅此处,尤其是保留字符部分:https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247(v=vs.85).aspx

具体来说,冒号是为设备名称保留的,通常是驱动器号或打印机/串行端口。

答案 1 :(得分:1)

据我所知,文件名不能包含“:”或“;”。因此,我在您的代码中看到的唯一错误是

  

z =格式(DateTime.Now,“ hh:mm dd:MM:YYYY ”)

我尝试了下面的代码,它运行正常;

promise

您可以通过获取小时和分钟部分并使用点连接来实现小时数。我希望有所帮助;)