文件未找到VBA

时间:2017-09-22 14:01:54

标签: excel vba excel-vba kill

我在尝试在VBA中创建备份脚本时感到非常沮丧。我收到错误'找不到文件'在打开文件后尝试杀死文件时,进行备份并以新名称保存。

Application.Workbooks.Open Old
ActiveWorkbook.SaveAs Archive
ActiveWorkbook.SaveAs New

'If Len(Dir$(Old)) > 0 Then Kill Old
If Len(Dir$(Old)) = 0 Then MsgBox ("bleuh")
'Here is where I get the message "Bleuh" even though Old was just opened a few lines ago..

第一行工作正常,但当我想要删除文件' Old'时,我收到错误。因此,我试图测试文件是否存在。结果是Msg" Bleuh"。所以文件可以打开,但以后找不到几行。任何人都可以解释这个并帮助我吗?

为了完整,可在此处找到整个代码。

Sub UpdateAll()
Dim Afk As String, J As String, NJ As String, Path As String, strFile As String, Old As String, Archive As String, New As String
'Dim fso As Object

Path = "C:\Users\Name\OneDrive - Company\Desktop\Testing backup" & "\"

Year = Year(Date)
VJ = Year
NJ = Year + 1


Application.ScreenUpdating = False

'test for Afk (I define Afk for some additional functions that are not relevant for this problem)
Afk = "ABA"

'filenames
Old = Path & ("Planning ") & VJ & Space(1) & Afk
Archive = Path & ("Planning\Archive ") & VJ & Space(1) & Afk
New = Path & ("Planning ") & NJ & Space(1) & Afk

Application.Workbooks.Open Old
ActiveWorkbook.SaveAs Archive
ActiveWorkbook.SaveAs New

If Len(Dir$(Oud)) > 0 Then Kill Old
If Len(Dir$(Oud)) = 0 Then MsgBox ("bleuh")
'Here is where I get the message "Bleuh" even though Old was just opened a few lines ago..

'Also tried
'fso.CopyFile Old, Archive 'AND
'FileCopy Old, Archive

'in combination with: 

'Name Old As New
' "SSDD"

'Next

Application.ScreenUpdating = True

End Sub

1 个答案:

答案 0 :(得分:0)

在分析您的代码后,我意识到您不需要打开您的文件(因为您没有从中获取任何信息)。你只想移动它。所以,请尝试以下方法:

Name Old as Archive 

这应该可以解决问题......