Здравствуйте. Если папку нужно, как и раньше, выбирать через диалоговое окно, то можно так. Имя будет уже введено в соответствующее поле [vba]
Код
Sub pdf() Dim fn fn = Application.GetSaveAsFilename(InitialFileName:=Replace_symbols([E6]) & ".pdf", FileFilter:="файл PDF, *.pdf") If fn = False Then Exit Sub ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fn, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True End Sub
[/vba] Здесь используется функция Replace_symbols, которая убирает из текста лишние символы [vba]
Код
Function Replace_symbols(ByVal txt As String) As String Dim st$, i& st = "/\~!@#$%^&*=|`';:?(),+" For i = 1 To Len(st$) txt = Replace(txt, Mid(st$, i, 1), "") Next Replace_symbols = txt End Function
[/vba] Если папка жёстко задана, просто пропишите параметр Filename примерно так: [vba]
Код
Filename:="C:\000\" & Replace_symbols([E6])
[/vba]
Здравствуйте. Если папку нужно, как и раньше, выбирать через диалоговое окно, то можно так. Имя будет уже введено в соответствующее поле [vba]
Код
Sub pdf() Dim fn fn = Application.GetSaveAsFilename(InitialFileName:=Replace_symbols([E6]) & ".pdf", FileFilter:="файл PDF, *.pdf") If fn = False Then Exit Sub ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fn, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True End Sub
[/vba] Здесь используется функция Replace_symbols, которая убирает из текста лишние символы [vba]
Код
Function Replace_symbols(ByVal txt As String) As String Dim st$, i& st = "/\~!@#$%^&*=|`';:?(),+" For i = 1 To Len(st$) txt = Replace(txt, Mid(st$, i, 1), "") Next Replace_symbols = txt End Function
[/vba] Если папка жёстко задана, просто пропишите параметр Filename примерно так: [vba]