SaveAs带有variables文件名/位置的错误
我正在尝试使用SaveAsfunction将电子表格保存到其他位置。 当我硬编码文件的名称,文件保存很好。
但是,由于我每天可以保存大约50个这样的文件,所以我需要能够区分保存的文件。 我试图设置文件名的一部分是可变的,这取决于文件保存时的时间戳。 (是的,我知道我可以按保存的date/时间对文件夹进行sorting,但是这些文件也可能被多人使用,他们可能不知道如何以这种方式使用function)。
这引发了一个错误
运行时错误'1004'方法'另存为'objct'_Workbook'失败
代码是:
Set wb = Workbooks.Add ThisWorkbook.Sheets("Holdings_Summary").Copy Before:=wb.Sheets(1) x = 2 k = Sheets.Count While x <= k Sheets(x).Delete k = Sheets.Count Wend z = Format(DateTime.Now, "hh:mm dd:MM:YYYY") wb.SaveAs "J:\A_Drive\Recon folders\Holdings" & z & ".xlsx" Workbooks("test1.xlsx").Close savechanges:=True
据我所知,文件名不能包含“:”或“;”。 所以唯一的错误,我看到你的代码是
z =格式(DateTime.Now,“ hh:mm dd:MM:YYYY ”)
我试过下面的代码,它工作正常;
Z = Date z2 = "D:\Users\B_PAMUK\Desktop\" & Z & ".xlsm" ActiveWorkbook.SaveAs Filename:=z2
您可以通过获得小时和分钟部分来实现小时,并用点连接它们。 我希望有帮助;)
你不能在一个文件名中使用冒号!
改变你的“格式”为:
z = Format(DateTime.Now, "hh-mm dd-MM-YYYY")
或者你喜欢什么性格而不是“ – ”
如果你想要的名字sorting很好,然后使用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
具体来说,冒号是为设备名称保留的,通常是驱动器号或打印机/串行端口。