Страницы: 1
RSS
как заставить макрос делать .pdf с именем текущего файла .xls и сохранять его в папку этого же .xls?
 
Создаю макрос в Excel 2007 по публикации выделенных листов файла в формате .pdf. Необходимо как-то изменить макрос, чтобы путь и имя создаваемого файла указывались не зафиксированно одни и те же (как это происходит автоматически при создании макроса), а менялись на имя и путь открытой в данный момент копии файла.  
 
То есть исходный файл с расчетами и сформированным на их основе отчетом будет использоваться как минипрограммка, которую каждый сотрудник в случае необходимости копирует к себе под каждого клиента и по каждому же создает пдфный отчет. И мне не нужно, чтобы пдфка появлялась всегда в моей папке, на основе которой создавался исходный файл с макросом  
Сейчас макрос в визуал бейсике выглядит так:  
Sub Сформировать_отчет()  
'  
' Сформировать_отчет Макрос  
'  
 
'  
   Sheets(Array("Отчет1", "Отчет2", "Отчет3")).Select  
   Sheets("Отчет1").Activate  
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _  
       "D:\Компьютеры\расчет для ТЦ\Расчет окупаемости - на доработку\Расчет окупаемости.pdf" _  
       , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _  
       :=False, OpenAfterPublish:=True  
   Sheets("Лист1").Select  
End Sub
 
Sub test()  
   ИмяФайла = Replace(ThisWorkbook.FullName, ".xls", ".pdf")  
   Sheets(Array("Отчет1", "Отчет2", "Отчет3")).Select  
   ActiveSheet.ExportAsFixedFormat xlTypePDF, ИмяФайла  
End Sub
 
Так будет правильнее:  
 
Sub test()  
   Dim sh As Worksheet: Set sh = ActiveSheet: Application.ScreenUpdating = False  
   ИмяФайла = Replace(ActiveWorkbook.FullName, ".xls", ".pdf")  
   Sheets(Array("Отчет1", "Отчет2", "Отчет3")).Select  
   ActiveSheet.ExportAsFixedFormat xlTypePDF, ИмяФайла  
   sh.Select  
End Sub
Страницы: 1
Читают тему
Наверх