Vba 为什么找不到刚创建的文件?
我有 错误53“找不到文件” 以下是该脚本最精简的版本: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
子测试()
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似乎成功了!现在我将在我的原始问题中尝试这个;)非常感谢。