Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 具有可变文件名/位置的SaveAs返回错误_Vba_Excel - Fatal编程技术网

Vba 具有可变文件名/位置的SaveAs返回错误

Vba 具有可变文件名/位置的SaveAs返回错误,vba,excel,Vba,Excel,我正在尝试使用“另存为”功能将电子表格保存到其他位置。当我硬编码文件名时,文件保存良好 然而,由于我每天可以保存大约50个这样的文件,我需要能够区分保存的文件。我试图将文件名的一部分设置为变量,这取决于文件保存时的时间戳。(是的,我知道我可以按保存的日期/时间对文件夹进行排序,但这些文件也可供多人使用,他们可能不知道如何以这种方式使用该功能) 这就产生了一个错误 运行时错误“1004”方法“另存为”objct“\u工作簿”失败 代码是: Set wb = Workbooks.Add ThisWo

我正在尝试使用“另存为”功能将电子表格保存到其他位置。当我硬编码文件名时,文件保存良好

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

这就产生了一个错误

运行时错误“1004”方法“另存为”objct“\u工作簿”失败

代码是:

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
Set wb=工作簿。添加
此工作簿。工作表(“控股汇总”)。之前的副本:=工作表(1)
x=2
k=床单数

当x时,不能在文件名中使用冒号

将“格式”更改为:

或任何你喜欢的字符而不是“-”

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

z = Format(DateTime.Now, "YYYY-MM-dd hh-mm")
有关Windows文件命名约定的信息,请参见此处,特别是有关保留字符的部分:


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

据我所知,文件名不能包含“:”或“;”。所以我在你的密码上看到的唯一错误是

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

我尝试了下面的代码,效果很好

Z = Date
z2 = "D:\Users\B_PAMUK\Desktop\" & Z & ".xlsm"
ActiveWorkbook.SaveAs Filename:=z2

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

请注意,这将使用一些默认的日期格式(可能是当前用户的默认格式),因此理论上它仍然可能包含非法字符。使用格式更好,因为您可以显式控制格式。
Z = Date
z2 = "D:\Users\B_PAMUK\Desktop\" & Z & ".xlsm"
ActiveWorkbook.SaveAs Filename:=z2