В моем Excel очень длинный VBA-код для выполнения множества процессов перед экспортом каждого листа в PDF.Во время работы я использую:
Application.ScreenUpdating = False
Application.ScreenUpdating = True
Проблема в том, что это не помогает, и мой экран все равно обновляется или, по крайней мере, мигает иногда черным, а иногда белым.Я думаю, что, возможно, команда .Select
вызывает эту проблему?Вот одна часть моего кода:
ActiveWorkbook.Sheets("MAIN").Select
For Each cel In Range("AX7:AX120")
If cel.Value = 1 Then
cel.Offset(0, -43).Font.Bold = True
cel.Offset(0, -44).Font.Bold = True
cel.Offset(0, -45).Font.Bold = True
cel.Offset(0, -46).Font.Bold = True
End If
Next
lastRow = [LOOKUP(2,1/(D1:D65536<>""),ROW(D1:D65536))]
Sheets("MAIN").PageSetup.PrintArea = Sheets("MAIN").Range("A1:Z" & lastRow).Address
---------------------- РЕДАКТИРОВАТЬ ---------------------------
Я внес изменения, но это не работает:
Dim printareaMain As Worksheet
Set printareaMain = Sheets("MAIN")
For Each cel In printareaMain.Range("AX7:AX120")
If cel.Value < 3 Then
cel.Offset(0, -43).Font.Bold = True
cel.Offset(0, -44).Font.Bold = True
cel.Offset(0, -45).Font.Bold = True
cel.Offset(0, -46).Font.Bold = True
End If
Next
'lastRow = [LOOKUP(2,1/(D1:D65536<>""),ROW(D1:D65536))]
printareaMain.PageSetup.PrintArea = printareaMain.Range("A1:Z" & [LOOKUP(2,1/(D1:D65536<>""),ROW(D1:D65536))]).Address
Следующая часть кода делаетничего:
printareaMain.PageSetup.PrintArea = printareaMain.Range("A1:Z" & [LOOKUP(2,1/(D1:D65536<>""),ROW(D1:D65536))]).Address