인쇄 대 화면 및 페이지 브레이크에 대한 Excel 조건부 내용/서식
-
19-09-2019 - |
문제
Excel에 VBA 게시 매크로가 있으며 마스터 구성 워크 시트와 데이터가 포함 된 여러 워크 시트를 기반으로 게시 된 통합 문서를 생성합니다. 게시 된 버전은 스트레이트 데이터이며 여전히 형식화되었지만 공식이없고 특정 메모 및 배경 정보가 억제됩니다. 기본적으로 마스터 구성에는 워크 시트 이름 테이블과 게시 할 범위가 포함되어 있습니다.
게시 된 버전을 인쇄하기 위해 일부 워크 시트에는 페이지 브레이크가 삽입되어야합니다. 동일한 구성에 따라이를 삽입 할 수 있으며 마스터 시트에 몇 개의 열을 추가하여 특정 워크 시트의 인쇄 방향과 여백을 변경할 수도 있습니다.
여기에 까다로운 부분이 온다. 테이블에 게시 프로세스 중에이 페이지 중 일부가 삽입 된 경우 페이지 브레이크 전에 다음 페이지에서 테이블이 계속된다는 것을 나타내는 정보 행을 삽입하려고합니다. 그러나 나는 이것을 인쇄 된 버전으로 표시하고 화면 디스플레이에 표시되지 않기를 원합니다.
이것을 할 방법이 있습니까?
해결책
먼저, 행을 삽입하고 페이지가 나기 직전에 숨기십시오. 그런 다음 사용할 수 있습니다 BeforePrint
통합 문서에서 "다음 페이지보기"텍스트가있는 모든 행을 찾은 다음 해제되지 않습니다.
Sub Workbook_BeforePrint(cancel as Boolean)
Dim rngCell as Range
set rngCell = ActiveSheet.UsedRange.Find("See Next Page")
while not rngCell is Nothing
if not rngCell is Nothing then
rngCell.EntireRow.Hidden = false
end if
set rngCell = ActiveSheet.UsedRange.FindNext()
loop
End Sub
이것은 당신이 갈 필요가 있었지만, 그것은 당신이 당신을 없다는 사실에 취약하게 할 것입니다. AfterPrint
. 따라서 할 수있는 것은 다음과 같습니다.
Sub Workbook_BeforePrint(cancel as Boolean)
Application.EnableEvents = false
'Unhide rows here
if cancel then
Workbook.PrintPreview()
else
Workbook.PrintOut()
end if
'Rehide rows here
Application.EnableEvents = True
End Sub
주목하십시오 cancel
인쇄 미리보기 또는 실제 인쇄 명령인지 본질적으로 알려줍니다. 그것은 매우 종류의 것입니다.