2016-06-17 1 views
1

일부 데이터를 시트의 머리글 (및/또는 바닥 글)에 동적으로 설정하려고합니다.Workbook_BeforePrint 이벤트가 작동하지 않습니다.

여러 포럼에서 나는 그것을하는 방법을 보여주는 수많은 예제를 발견했으며, 모든 어려움없이 이해하기가 쉽습니다.

Private Sub Workbook_BeforePrint(Cancel As Boolean) 
    ActiveSheet.PageSetup.CenterFooter = Range("A1") 
End Sub 

그러나 단순히 작동하지 않습니다 : 아무것도 내 시트 미리보기에 표시되지 않습니다
그래서 나는이 같은 간단한 시도에 읽은 것을 적용했다.

은 BTW 문서화의 유일한 모호한 점은 사용하는 데이터의 표현에 대해, 그래서 나 또한도 성공하지, Range("A1").Value에 의해 다음, Range("A1").Text에 의해 Range("A1")를 교체했습니다.

은 내가 몇 가지 간단한 포인트를 누락 생각 ...

그것은 작동하지 않는 beforeprint 아니다

답변

0

다른 답변이 이미 제안되었으므로 코드는 문제가되지 않았으므로 사실 문제가 발생하지 않았습니다.

이것은 바보 같은 상황에서 나온 것입니다. 디자인 모드가 활성화되었습니다! 디자인 모드와

는 ... 모두가 잘 작동, 대답에 대한

0

, 그것은 .centerfooter입니다. 대신보십시오 :

ActiveSheet.PageSetup.CenterFooter = CStr(Cells(1, 1)) 

Documentation 명시 적으로 string 요구,하지만 난 그것을 명시 적으로 이미 셀에 문자열 인 경우에도 string로해야하는 이유 확실하지 않다.

+0

감사를 사용할 수 없습니다. 하지만 아무 것도 표시하지 않습니다! BTW 나는 또한'ActiveSheet.PageSetup.CenterFooter = "어떤 텍스트"와 직접 시도했다 그리고 그것은 아직 동일했다. 'Private Sub'가 단지 호출되지 않는다는 것이 아닐까요? 그러나 나는 왜 그런지 알 수 없다 ... – cFreed

+0

2007 년에 저처럼 작동합니다. 'ThisWorkbook' 모듈에 있나요? – Raystafarian

+0

당신의 마지막 코멘트를 읽었습니다. "Alleluia"라고 생각했습니다. 그 대신에 관련된 시트 모듈에 있었기 때문입니다. 하지만 ...'ThisWorkBook' 모듈로 옮긴 후에도 작동하지 않습니다! 다른 생각? TIA – cFreed

1

코드가 나를 위해 일했습니다. 또한 디버깅을 위해 몇 가지 추가 줄을 사용하여 코드를 테스트했습니다.

Private Sub Workbook_BeforePrint(Cancel As Boolean) 
    Debug.Print "Running Workbook_BeforePrint" 
    ActiveSheet.PageSetup.CenterFooter = Range("A1") 
    Cancel = True 
End Sub 

인쇄하기 전에 바닥 글이 비어 있습니다. 인쇄 후 미리보기 일치하는 A1 및 "실행중인 Workbook_BeforePrint"바닥 글은 직접 실행 창에 있습니다.

+0

나는 당신의 대답 덕분에 무엇이 잘못되었는지를 발견했다. (내 대답을 보라). 먼저, 당신이 제안한 것처럼'Debug.Print'를 추가했고 실행 창에 아무 것도 나타나지 않는 것을 관찰했습니다. 이벤트가 시작되지 않았다는 생각을 강요하기 때문에 작업 매크로에'Debug.Print'를 추가하고 싶었습니다 ... 그리고 어떻게 디자인 모드를 활성화했는지 발견했습니다! 나는 정말로 당신의 대답을 "받아 들일 수는 없지만 그것이 무슨 일이 일어 났는지를 확실히 이해하는 방법이다. 그래서 나는 그것을 upvote한다. 다시 한번 감사드립니다. – cFreed

관련 문제