Функция петли + сохранение отчетов в формате PDF - PullRequest
0 голосов
/ 20 мая 2018

Я использую функцию цикла, чтобы фильтровать данные и генерировать кучу отчетов через выпадающее меню.Я хочу сохранить PDF каждого отчета, так как он создается в определенном месте файла с указанным именем.

У меня нет ошибок в приведенном ниже коде - однако PDF-файлы не отображаются в месте назначения файла.

Может ли кто-нибудь помочь определить, где я могу ошибаться?

Пожалуйста, извините код ниже - мои навыки в лучшем случае являются базовыми.

Спасибо, HB

Sub PC_Report_Summary()

Dim PCreportreq As String
Dim PCfinalrow As Integer
Dim PClastprintrow As Integer
Dim PCclient As String
Dim PCbem As String
Dim PCreportlocation As String
Dim PCreportname As String
Dim i As Integer

Application.ScreenUpdating = False
Application.EnableEvents = False

Sheets("Summary").Range("B13:E1000").ClearContents
Sheets("PC Unit 8015").Range("P10:S1000").ClearContents

Sheets("PC Unit 8015").Select

PCreportreq = Sheets("PC Unit 8015").Range("B2").Value
PCfinalrow = Sheets("PC Unit 8015").Range("F1000").End(xlUp).Row
PClastprintrow = Sheets("PC Unit 8015").Range("P1000").End(xlUp).Row

For i = 10 To PCfinalrow
If Cells(i, 6) = PCreportreq Then
    Range(Cells(i, 2), Cells(i, 5)).Copy
    Range("P1000").End(xlUp).Offset(1, 0).PasteSpecial             xlPasteValuesAndNumberFormats
    End If
Next i

PClastprintrow = Sheets("PC Unit 8015").Range("P1000").End(xlUp).Row
PCclient = Sheets("Summary").Range("C8").Value
PCbem = Sheets("PC Unit 8015").Cells(i, 16).Value
PCreportlocation = Sheets("Summary").Range("C9").Value
PCreportname = PCreportlocation & " - " & PCclient & " - " & PCbem & ".pdf"

Sheets("PC Unit Test Report").Activate

For i = 10 To PClastprintrow
Sheets("PC Unit Test Report").Range("D11") = Sheets("PC Unit 8015").Cells(i, 16).Value

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    PCreportname, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    False

Next i

Sheets("PC Unit 8015").Range("P10:S1000").Copy
Sheets("Summary").Range("B1000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats

End Sub

1 Ответ

0 голосов
/ 20 мая 2018

трудно понять, все ли пути к папкам, исходящие из листа, настроены нормально, но вот пример, который работает:

Sub saveAsPdf()

    Dim dir As String
        dir = "C:\Users\Evan\Desktop\"

    Dim sFileName As String
        sFileName = "helloWorld" & ActiveWorkbook.Name & "_" & Format(Date, "dd mmm")


    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        dir & sFileName & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

End Sub

Я думаю, что вам не хватает:

& Format(Date, "dd mmm")

РЕДАКТИРОВАТЬ:

Просто понял, что, когда вы зацикливаетесь на сохранение новых PDF-файлов, вы не обновляете свои

PClastprintrow = Sheets("PC Unit 8015").Range("P1000").End(xlUp).Row
PCclient = Sheets("Summary").Range("C8").Value
PCbem = Sheets("PC Unit 8015").Cells(i, 16).Value
PCreportlocation = Sheets("Summary").Range("C9").Value
PCreportname = PCreportlocation & " - " & PCclient & " - " & PCbem & ".pdf"

, они должны быть во 2-м цикле, который сохраняет PDFи я предполагаю, что имя пути меняется.скорее всего, этот файл будет сохранен поверх самого себя x10 lol.

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