Макрос для выбора местоположения Excel Сохранить как на основе значения ячейки выдает ошибку времени выполнения 1004 - PullRequest
0 голосов
/ 17 апреля 2019

Вот мой код

Public Sub SaveAsA1()

With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = ActiveWorkbook.Sheets("Sheet1").Range("R1").Value
.Show
ActiveWorkbook.SaveAs filename:=Range("R1") & ".xlsm", FileFormat:=52

End With
 MsgBox "File Saved!"
End Sub

, но когда я выбираю местоположение, оно не перезаписывает значение ячейки и выдает ошибку времени выполнения # 1004.

Пожалуйста, кто-нибудь может помочь

1 Ответ

0 голосов
/ 23 апреля 2019

У меня есть две возможные проблемы, которые я вижу:

  1. Вы получаете имя файла методом FileDialog, но затем используя в качестве имени SaveAs все, что находится в ячейке, независимо от что пользователь только что выбрал.
  2. Возможно, вы дважды добавляете имя файла в зависимости от того, что уже находится в ячейке.

Вот предлагаемое исправление для вашего кода, чтобы установить для содержимого ячейки "R1" значение, выбранное пользователем перед сохранением файла:

Public Sub SaveAsA1()

With Application.FileDialog(msoFileDialogSaveAs)
    .InitialFileName = ActiveWorkbook.Sheets("Sheet1").Range("R1").Value
    .Show
    ActiveWorkbook.Sheets("Sheet1").Range("R1").Value = Trim(.SelectedItems(1))
    ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Sheets("Sheet1").Range("R1").Value, FileFormat:=52
End With

MsgBox "File Saved!"
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...