Экспорт отфильтрованных строк на листе и исключение указанных столбцов при печати в PDF - PullRequest
0 голосов
/ 09 июня 2019

У меня есть макрос для экспорта одного листа в PDF.

Sub RentalEquipmentList()
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandler

Set wbA = ActiveWorkbook
Set wsA = Sheets("RENTALS")
strTime = Format(Now(), "yyyymmdd\_hhmm")

'get active workbook folder, if saved
strPath = wbA.Path
If strPath = "" Then
  strPath = Application.DefaultFilePath
End If
strPath = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\")) & 
"23-Portal Traveler\"

'replace spaces and periods in sheet name
strName = Replace(wsA.Name, " ", "")
strName = Replace(strName, ".", "_")

'create default name for savng file
strName = ThisWorkbook.Sheets("General Info").Range("B8").Value _
      & " Rental Equipment List "
'create default name for savng file
strFile = strName & ".pdf"
strPathFile = strPath & strFile

'use can enter name and
' select folder for file
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strPathFile, _
    FileFilter:="PDF Files (*.pdf), *.pdf", _
    Title:="Select Folder and FileName to save")

'export to PDF if a folder was selected   
If myFile <> "False" Then
wsA.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    filename:=myFile, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
 'confirmation message with file info
 MsgBox "PDF file has been created: " _
  & vbCrLf _
  & myFile
End If
exitHandler:
Exit Sub
errHandler:
MsgBox "Could not create PDF file"
Resume exitHandler
End Sub

Я получаю экспортированный полный лист.

Мне нужно отфильтровать строки на основе значения столбца "A".

Также, как мне удалить определенные столбцы измой экспортируемый диапазон?
Пример: мне не нужно видеть столбцы 3,4 в моем экспортированном файле?

1 Ответ

1 голос
/ 10 июня 2019

Сначала отфильтруйте столбец A, затем экспортируйте в PDF, а затем очистите фильтры ...

If myFile <> "False" Then
    With wsA
        If .FilterMode Then .ShowAllData
        .UsedRange.AutoFilter Field:=1, Criteria1:="<>"
        .ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=myFile, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
        .UsedRange.AutoFilter
    End With
    'confirmation message with file info
    MsgBox "PDF file has been created: " _
     & vbCrLf _
     & myFile
End If

Редактировать: исключить определенные столбцы при печати в PDF

If myFile <> "False" Then
    With wsA
        If .FilterMode Then .ShowAllData
        With .UsedRange
            .AutoFilter Field:=1, Criteria1:="<>"
            .Range("C:D").EntireColumn.Hidden = True
        End With
        .ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=myFile, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
        With .UsedRange
            .Range("C:D").EntireColumn.Hidden = False
            .AutoFilter
        End With
    End With
    'confirmation message with file info
    MsgBox "PDF file has been created: " _
     & vbCrLf _
     & myFile
End If

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...