Description
Excel Personal workbook macro to save as pdf in current directory
I want to record macro in personal workbook for the following.
1. Activate Book1.xlsx
2. Select sheets Sheet3, Sheet4 and Sheet6
3. Save these selected sheets as .pdf in the same directory where Book1.xls is saved
4. Name of the saved .pdf file should be the name what is written in Range A1 of Sheet1 of Book1.xlsx and suffix "20" after the name
Please provide the macro code for the same.
Thank you.
Explanation & Answer
Thank you for the opportunity to help you with your question!
Put this code in the personal workbook:
Sub SaveBook1_AsPDF()
'workbook Book1.xlsx must already be open
'and it must have already been saved to disk
'so that it contains file path information as
'part of its name.
'That workbook must have sheets named
'Sheet1, Sheet3, Sheet4 and Sheet6 in it.
'Sheet1 must have a valid filename in cell A1.
Dim FilePath As String
Dim NewName As String
Windows("Book1.xlsx").Activate
FilePath = Left(ActiveWorkbook.FullName, _
InStrRev(ActiveWorkbook.FullName, Application.PathSeparator))
NewName = ActiveWorkbook.Worksheets("Sheet1").Range("A1")
Sheets(Array("Sheet3", "Sheet4", "Sheet6")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
FilePath & NewName & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub
[Edit] I didn't code in the addition of the 20 suffix in the name above, you could accomplish that by changing one line of the code above like this:
NewName = ActiveWorkbook.Worksheets("Sheet1").Range("A1") & "20"
Please let me know if you need any clarification. I'm always happy to answer your questions.