Перезаписать файл - VBA - PullRequest
0 голосов
/ 20 марта 2020

У меня есть следующий код, который проверяет, существует ли файл в указанном c месте. Если файл не существует, сохраните файл. В случае, если файл существует, я хочу перезаписать его. Любая помощь?

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

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Вы хотите сначала удалить его, если он существует. Это простой способ. И, как предположил Сиддхарт Роут, нет никакого вреда и в том, чтобы отключать атрибут ReadOnly только в том случае, если он может быть установлен только для чтения.

sFullFile = FPath & "\" & FName
If Dir(sFullFile) <> "" Then
  SetAttr sFullFile, vbNormal
  Kill sFullFile
End If
NewBook.SaveAs Filename:=sFullFile
1 голос
/ 20 марта 2020

Используйте kill, чтобы удалить файл

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

Я бы порекомендовал сохранить путь к файлу и имя в одной переменной, чтобы избежать повторения

FLocation = (FPath & "\" & FName)
If Dir(FLocation) <> "" Then Kill (FLocation)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...