覆盖文件-VBA

问题描述 投票:0回答:2

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

If Dir(FPath & "\" & FName) <> "" Then
    MsgBox "File " & FPath & "\" & FName & " already exists"
Else
    NewBook.SaveAs Filename:=FPath & "\" & FName
End If
excel vba overwrite
2个回答
1
投票

如果存在,您首先要删除它。那是简单的方法。正如Siddharth Rout所建议的那样,即使将ReadOnly属性设置为Read Only,也将其关闭没有任何害处。

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

1
投票

使用kill删除文件

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

我建议将文件路径和名称存储在单个变量中,以避免重复您的操作

FLocation = (FPath & "\" & FName)
If Dir(FLocation) <> "" Then Kill (FLocation)
© www.soinside.com 2019 - 2024. All rights reserved.