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

'-----------печать в ПДф файл. сохраняет туде же где файл эксель
   
lLastRow2 = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
   ActiveSheet.Range("A1", "G" & lLastRow2 - 3).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
       ActiveWorkbook.FullName & ".pdf", Quality:=xlQualityStandard, _
       IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
       False
End Sub
Изменено: ПРОИЗВЕД - 17.01.2021 19:15:19
 
Код
Sub CopyActiveSheetAsNewBook()
  Dim nm$
  nm = ThisWorkbook.Path & "\" & ActiveSheet.Name
  On Error Resume Next
  If Dir(nm & ".xlsx") <> "" Then Kill nm & ".xlsx"
  If Err Then MsgBox "Файл:    " & nm & vbLf & _
  "открыт   сейчас   в     EXCEL!" & vbLf _
  & vbLf & "Закройте файл, повторите попытку", _
  vbCritical, "Внимание! ПРОБЛЕМА!!!": Exit Sub
  ActiveSheet.Copy: ActiveWorkbook.SaveAs nm
End Sub
Изменено: Ігор Гончаренко - 17.01.2021 19:42:04
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
работает, спасибо!
 
не понял, вроде в такой редакции норм отрабатывает, зачем дополнения?
Dim nm$
 nm = ThisWorkbook.Path & "\" & ActiveSheet.Name
 If Dir(nm & ".xlsx") <> "" Then Kill nm & ".xlsx"
 ActiveSheet.Copy: ActiveWorkbook.SaveAs nm
 
выполните макрос 2 раза подряд - увидите
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
исходный бы закрыть без предупреждения и сохранения по окончании переноса.
 
описать бы как все должно происходить, тогда можно написать макрос, который будет работать согласно описанию

когда задача описана как-нибудь - может получиться, что макрос, решающий такую задачу, будет работать как угодно
предполагалось, что это:
Цитата
исходный бы закрыть без предупреждения и сохранения
я должен был бы угадать, но не случилось (собственно я и не пытался, я неоднократно писал тут, что как экстрасенс - я полный ноль)
вы очень не плохо справились с описанием задачи в первом сообщении. потому что там, где описания задачи нет вообще - ответить не возможно в принципе, а гадать или выспрашивать а что? а как? мне не интересно
Изменено: Ігор Гончаренко - 17.01.2021 21:53:35
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
я должен был бы угадать, но не случилось
ну нет уж, это у меня поздняя мысля появилась, извините. Спасибо еще раз большое!
Страницы: 1
Наверх