Автор Тема: VBA SaveAs -> Permissio denied  (Прочитано 254 раз)

Оффлайн Sleepy

  • Посетитель форума
  • Сообщений: 4
VBA SaveAs -> Permissio denied
« : 14 Декабрь 2021, 13:08 »
При открытии файла 1 сохраняю его как файл 2.
Первый файл хочу переместить в архив, при этом получаю ошибку

Run-time error '70'
Permission denied

Средствами windows я переместить или удалить файл тоже не могу. Она говорит "Нет доступа или файл уже используется".
Как отпустить файл 1 после saveas?
Код:
ThisWorkbook.SaveAs NewFilePath, FileFormat:=52
fso.MoveFile FilePath, ArchivePath

Оффлайн Администратор

  • Administrator
  • Сообщений: 1952
Re: VBA SaveAs -> Permissio denied
« Ответ #1 : 14 Декабрь 2021, 13:30 »
Выложите полностью код макроса, чтобы код начинался Sub и заканчивался End Sub.
Весь код можете не выкладывать, а можете оставить только ту часть, с которой проблема.

Оффлайн Sleepy

  • Посетитель форума
  • Сообщений: 4
Re: VBA SaveAs -> Permissio denied
« Ответ #2 : 14 Декабрь 2021, 13:54 »
Sub save_file()

Set fso = CreateObject("Scripting.FileSystemObject")

FilePath = ThisWorkbook.FullName
FileOnly = ThisWorkbook.Name
PathOnly = Left(FilePath, Len(FilePath) - Len(FileOnly))

NewFilePath = Left(FilePath, Len(FilePath) - Len(FileOnly)) + Format(Now, "yyyy.mm.dd") + "New.xlsm"

ArchivePath = "s:\

If Not fso.FileExists(NewFilePath) Then
   ThisWorkbook.SaveAs NewFilePath, FileFormat:=52
   fso.MoveFile FilePath, ArchivePath
End If
End Sub

Оффлайн Администратор

  • Administrator
  • Сообщений: 1952
Re: VBA SaveAs -> Permissio denied
« Ответ #3 : 14 Декабрь 2021, 13:57 »
В создаваемом файле должен быть макрос?
Вы создаёте копию файла, внутри которого находится макрос.

Оффлайн Sleepy

  • Посетитель форума
  • Сообщений: 4
Re: VBA SaveAs -> Permissio denied
« Ответ #4 : 14 Декабрь 2021, 14:00 »
Да, меняется только дата в имени файла

Оффлайн Администратор

  • Administrator
  • Сообщений: 1952
Re: VBA SaveAs -> Permissio denied
« Ответ #5 : 14 Декабрь 2021, 14:03 »
Сейчас логика нарушена и в голове не укладывается что происходит. После команды SaveAs исходный файл уже закрыт и непонятно, почему вообще макрос продолжает работать - файл закрыт, в котором находится макрос.
Надо изменить принцип.

Исходный файл после работы макроса надо закрыть или исходный файл должен оставаться открытым?

Оффлайн Sleepy

  • Посетитель форума
  • Сообщений: 4
Re: VBA SaveAs -> Permissio denied
« Ответ #6 : 14 Декабрь 2021, 14:11 »
Исходный файл нужно закрыть. Чтобы его можно было переместить или удалить.

Макрос должен продолжить работу в файле с новым именем.

Оффлайн Администратор

  • Administrator
  • Сообщений: 1952
Re: VBA SaveAs -> Permissio denied
« Ответ #7 : 14 Декабрь 2021, 14:13 »
Такое я не знаю, как сделать.
По логике, если файл закрылся, то и файл, в котором макрос, тоже должен закрыться. Что происходит в вашем случае - у меня в голове не укладывается.
Спросите на другом форуме. На этом форуме отвечаю только я.