Использование ScreenUpdating = false и xlCalculationManual заставляет моего Excel печатать тот же PDF-файл без обновления результатов vlookup. - PullRequest
0 голосов
/ 21 марта 2019

Возникли проблемы с Excel Печать одного и того же PDF снова и снова. Это прекрасно работает без Application.ScreenUpdating = False и Application.Calculation = xlCalculationManual вместе, но если я использую их для ускорения значений, PDF-файл начинает печатать одно и то же снова и снова. Когда я прошел через формулу, она печатается правильно. Не уверен, есть ли проблема несоответствия скорости или что идет не так.

Значения сохраняются в массиве varPrintUnits (0, i) и затем перемещаются в ячейку в модели Excel, которая обновляет местоположение. Таким образом, на каждой итерации вводится новое местоположение, и значения обновляются, после чего создается файл PDF.

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

varSheet = "SCQuality"
'look through each unit and print a pdf
For i = 2 To lastrow

    'stop if getting blanks, no more units
    If varPrintUnits(3, i) = "Unit" Or varPrintUnits(3, i) = "Division" Or varPrintUnits(3, i) = "" Then
    GoTo SKIPME1
        End
    End If
'if the code creates pdfs that contain the same data, chances are Worksheets(varSheet).Cells(2, 37).
    'print the PDF
    If varPrintUnits(4, i) = 1 Then
    'If varPrintUnits(1, i) = "NY" Then
        Worksheets(varSheet).Cells(2, 37).Value = varPrintUnits(0, i) 'UnitReportingID
        Worksheets(varSheet).Calculate
        varFileName = varPrintUnits(2, i) & "-" & varPrintUnits(3, i) & "-" & varPrintUnits(1, i) & "-Q"  'campus, unit, display unit


        Call printPDF(varFileName, varQualityDirectory, varSheet)
End If
SKIPME1:
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End sub
----------------------------------------------------
Sub printPDF(varFileName, varFilePath, varSheet)
On Error GoTo error_step

Dim fp As String
Dim ws As Worksheet


fp = varFilePath & Replace(varFileName, "/", "_") & ".pdf"
Set ws = Worksheets(varSheet)


ws.ExportAsFixedFormat Type:=xlTypePDF, _
                       Filename:=fp, _
                       quality:=xlQualityStandard, _
                       IncludeDocProperties:=True, _
                       IgnorePrintAreas:=False, _
                       OpenAfterPublish:=True

error_step:
    Exit Sub
    GoTo exit_handle

exit_handle:

End Sub
-------------------------------------------------

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