문제

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 인쇄 미리보기 또는 실제 인쇄 명령인지 본질적으로 알려줍니다. 그것은 매우 종류의 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top