覆盖文件 - VBA

Overwrite file - VBA

我有下面的代码来测试文件是否存在于特定位置。如果文件不存在,则保存文件。我想要的是,如果文件存在,则覆盖它。有帮助吗?

If Dir(FPath & "\" & FName) <> "" Then
    MsgBox "File " & FPath & "\" & FName & " already exists"
Else
    NewBook.SaveAs Filename:=FPath & "\" & FName
End If

使用kill删除文件

If Dir(FPath & "\" & FName) <> "" Then Kill (FPath & "\" & FName)

我建议将文件路径和名称存储在一个变量中以避免重复自己

FLocation = (FPath & "\" & FName)
If Dir(FLocation) <> "" Then Kill (FLocation)

如果它存在,你会想先删除它。这是简单的方法。正如 Siddharth Rout 所建议的,关闭 ReadOnly 属性也没有坏处,以防万一它可能被设置为只读。

sFullFile = FPath & "\" & FName
If Dir(sFullFile) <> "" Then
  SetAttr sFullFile, vbNormal
  Kill sFullFile
End If
NewBook.SaveAs Filename:=sFullFile