Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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 为什么找不到刚创建的文件?_Vba_Excel - Fatal编程技术网

Vba 为什么找不到刚创建的文件?

Vba 为什么找不到刚创建的文件?,vba,excel,Vba,Excel,我有 错误53“找不到文件” 以下是该脚本最精简的版本: 子测试() Dim NJ作为字符串,path作为字符串,Oud作为字符串,Archief作为字符串,Nieuw作为字符串 path=“C:\Test”和“\” Oud=路径和“A” Archief=path&(“存档”)&“\”和“A” Nieuw=路径和“B” Application.Workbooks.Add ActiveWorkbook.SaveAs Oud ActiveWorkbook.SaveAs Archief ActiveW

我有

错误53“找不到文件”

以下是该脚本最精简的版本:

子测试()
Dim NJ作为字符串,path作为字符串,Oud作为字符串,Archief作为字符串,Nieuw作为字符串
path=“C:\Test”和“\”
Oud=路径和“A”
Archief=path&(“存档”)&“\”和“A”
Nieuw=路径和“B”
Application.Workbooks.Add
ActiveWorkbook.SaveAs Oud
ActiveWorkbook.SaveAs Archief
ActiveWorkbook.SaveAs Nieuw
杀死乌德
端接头
我试图通过将路径名限制在最基本的部分来绕过路径名过长的可能性。
我创建了一个新文件,我给了它一个变量名,以确保路径名中没有错误。
我与它交谈,以确保我有适当的权限更改、编辑和删除文件

该脚本没有太多意义(为什么不创建Archief和Nieuw?),但我试图理解另一个脚本中出现的错误,在另一个脚本中,我尝试将一些文件(例如,“name 2017”)归档到归档文件夹中,并在原始文件中为新的一年重命名它们(例如,“name 2018”)然后杀掉2017年的原始文件来收拾残局


找不到我刚才创建的文件是没有意义的。

请执行以下更改:

1) 将以下行添加到代码中:

Dim filename As String

filename = "test.xls" 'You can select any name and any excel file format
2) 更换这些线路:

    Application.Workbooks.Add
    ActiveWorkbook.SaveAs Oud
    ActiveWorkbook.SaveAs Archief
    ActiveWorkbook.SaveAs Nieuw
    Kill Oud
有了这些:

    ActiveWorkbook.SaveAs Oud & "\" & filename
    ActiveWorkbook.SaveAs Archief & "\" & filename
    ActiveWorkbook.SaveAs Nieuw & "\" & filename

    Kill Oud & "\" & filename

请执行以下更改:

1) 将以下行添加到代码中:

Dim filename As String

filename = "test.xls" 'You can select any name and any excel file format
2) 更换这些线路:

    Application.Workbooks.Add
    ActiveWorkbook.SaveAs Oud
    ActiveWorkbook.SaveAs Archief
    ActiveWorkbook.SaveAs Nieuw
    Kill Oud
有了这些:

    ActiveWorkbook.SaveAs Oud & "\" & filename
    ActiveWorkbook.SaveAs Archief & "\" & filename
    ActiveWorkbook.SaveAs Nieuw & "\" & filename

    Kill Oud & "\" & filename

我假设错误发生在说
Kill Oud
的行上,实际上是
Kill“C:\Test\A”
。文件
“C:\Test\A”
是否存在?因为Excel会将工作簿保存为
“C:\Test\A.xlsx”
“C:\Test\Archive\A.xlsx”
“C:\Test\B.xlsx”
。或者
“C:\Test\A.xls”
“C:\Test\A.xlsm”
,这取决于您的默认设置。在
之后,另存为Oud
,插入一行,如下所示:
Oud=Activeworkbook.Fullname
-这将设置
Oud
为实际文件名,而不是您的缩写版本。此外,您可能希望查看
Activeworkbook.SaveCopyAs
,这可能会为您的流程提供更好的解决方案。添加扩展不起作用,但。。。设置Oud=Activeworkbook.Fullname似乎成功了!现在我将在我的原始问题中尝试这个;)非常感谢。我假设错误发生在说
Kill Oud
的行上,实际上是
Kill“C:\Test\A”
。文件
“C:\Test\A”
是否存在?因为Excel会将工作簿保存为
“C:\Test\A.xlsx”
“C:\Test\Archive\A.xlsx”
“C:\Test\B.xlsx”
。或者
“C:\Test\A.xls”
“C:\Test\A.xlsm”
,这取决于您的默认设置。在
之后,另存为Oud
,插入一行,如下所示:
Oud=Activeworkbook.Fullname
-这将设置
Oud
为实际文件名,而不是您的缩写版本。此外,您可能希望查看
Activeworkbook.SaveCopyAs
,这可能会为您的流程提供更好的解决方案。添加扩展不起作用,但。。。设置Oud=Activeworkbook.Fullname似乎成功了!现在我将在我的原始问题中尝试这个;)非常感谢。