VBAでバックアップスクリプトを作成しようとしていました。ファイルを開いた後でファイルを強制終了しようとしたときに、「ファイルが見つかりません」というエラーが表示され、バックアップが作成され、新しい名前で保存されます。ファイルが見つかりませんでした。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」ファイルを強制終了するときにエラーが発生します。したがって、ファイルが存在するかどうかをテストしようとしました。結果はメッセージ "ブリュウ"でした。したがって、ファイルを開くことはできますが、数行後には見つかりません。誰もがこれを説明し、私を助けることができますか?
完全なコードはここにあります。
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
は、あなたのファイル名の変数をその上に延長していますか? – braX
私は 'Oud'にパスとファイル名をどこに割り当てるのか分かりません。 – Jeeped
ファイルを最初に削除して、それがまだ存在するかどうかを検証しています...代わりに 'Select Case'を試してください... – Pspl