Страницы: 1
RSS
Проверка наличия одноименного файла в папке, Перед созданием файла макросом, проверить нет ли уже в конечной папке файла с указанным названием
 
Здравствуйте уважаемые форумчане.
Помогите пожалуйста дописать макрос.

По результатам обработки, макрос создает файл в конечной папке "Выгрузки" следующим образом:
Код
Sub Создатькнигу ()
...

New_Wb.SaveAs ("\\Users\Общая\Еженедельное совещание\Выгрузки\Карта" & "_" & ThisWorkbook.Sheets("Сводная").Range("C1") & "_" & ThisWorkbook.Sheets("Вес").Range("F4") & ".xlsx") 
New_Wb.Close

End Sub

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

Заранее благодарю всех, кто сможет откликнуться.
 
Код
Sub Создатькнигу ()
  Dim fn$
  fn = "\\Users\Общая\Еженедельное совещание\Выгрузки\Карта" & "_" & ThisWorkbook.Sheets("Сводная").Range("C1") & "_" & ThisWorkbook.Sheets("Вес").Range("F4") & ".xlsx"
  if Dir(fn) <> "" then exit sub
  New_Wb.SaveAs fn
  New_Wb.Close
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Игорь, большое спасибо, уже не в первый раз меня выручаете🤝
Подскажите, я правильно прочитал, что знак $ объявляет строковый/текстовый формат переменной fn (= As String)?

Код немного дополнил, чтобы все-таки оставить MSGBox (для моей задачи нужно, вдруг кому-то еще пригодится), вся фишка для того, чтобы перейти от MSGBox к Exit Sub, как я понял, - в двоеточии в конце MSGBOX'а.
Проверку поставил в самое начало кода, чтобы проверка происходила сразу, до основной обработки данных (в основной части у меня сначала создается доп. лист, где происходят вычисления - если оставить проверку в конце, то даже при завершении макроса, эксель будет переходить на созданный лист...)
Код
Sub

 Dim fn$    
fn = "\\Users\Общая\Еженедельное совещание\Выгрузки\Карта" & "_" & ThisWorkbook.Sheets("Сводная").Range("C1") & "_" & ThisWorkbook.Sheets("Вес").Range("F4") & ".xlsx"
    If Dir(fn) <> "" Then MsgBox "Этот файл уже выгружался сегодня, посмотри в папке ""Выгрузки""", vbInformation, "Info": Exit Sub

... (основной макрос)

 New_Wb.SaveAs fn  
New_Wb.Close
End Sub
 
Dim fn$
и
Dim fn as String
это одно и то же (только букв меньше)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх