2014-02-28 4 views
1

설정 여기에 코드입니다.오류 나는 엑셀 2007을 사용하고 Worksheet.PageSetup.XxxFooter

Run-time error '1004': Unable to set the RightFooter property of the PageSetup class 

LeftFooterCenterFooter 속성은 잘 설정하세요. 그러나 속성을 설정 한 순서를 변경하면 마지막으로 LeftFooter 또는 CenterFooter이 오류를 유발하고 이전 두 항목은 항상 성공적으로 설정됩니다. 그래서 그것은 footer 나 다른 것에 대한 구문에서 에러가 아니라는 것을 말해줍니다.

필자는 일부 글꼴을 기울임 꼴로 설정하고 세 바닥 글 섹션에서 다른 색상을 설정한다는 점에 유의하십시오. 기울임 체와 색상으로 변경하는 부분을 제거하면 (마지막 바닥 글 섹션에서만) 오류없이 실행됩니다.
EDIT 또한 이탤릭체 부분 만 제거하면 오류없이 코드가 실행됩니다. /

처음에는이 오류가 발생했고, 변수와 연결을 사용하여 마침내 작동했지만 지금은 다시 고장났습니다. 문제를 파악할 수 없습니다.

This question 가능성이있는 것으로 보입니다. 그러나 확실하지 않습니다. 나는 그 사람을 위해 일한 픽스를 시도했다. (Replace은 정말로 새로운 캐릭터 라인을 반환하는 것을 제외하고는 아무것도하지 않는다.)하지만 여전히 같은 오류가 난다.

어쨌든 영향을 안 lf, cfrf, 변수를 병합하고 (절망) 다른 물건을 많이 설정할 수있는 연결을 사용하지 않는 시도했습니다, 나는이 오류가 계속. 누구든지 문제가 무엇인지 알 수 있습니까?

UPDATE
내 질문에 대한 답을 찾을 수 없다, 그래서 난 그냥 기울임 꼴 글꼴 스타일을 제거하고 나머지는 일하고 있었다. 나는 충분히 행복했다. 이제, 가로 시트 (다른 ​​세로)의 머리말과 꼬리말을 만들어야했습니다. 머리글과 바닥 글은 세로 시트의 경우와 완전히 동일하므로 가운데 바닥 글 섹션의 일부 텍스트가 길어집니다. 나머지는 완전히 동일합니다. 꼬리말을 만드는 전체 절차가 복사되고 한 텍스트 만 변경되었습니다. 이제 이전과 같은 오류가 발생합니다 (기울임 꼴 부분 없음). 이전과 마찬가지로 설정중인 마지막 꼬리말 섹션에서 발생합니다. 세로 바닥 글은 여전히 ​​올바르게 작동합니다. 이것은 내가 너트를 몰고 간다. 그리고 나는 당신이 상당히 간단 할 것이라고 생각할만한 일에 소중한 시간을 잃어 가고있다.

누구든지 오류를 복제 할 수 있습니까?

여기에 전체 코드입니다 :

Private Const LINE_CLR As String = "&K538ED5" ' RGB(83, 142, 213) 
'Private Const TEXT_STYLE AS STRING = "&""-,Italic""" 
Private Const TEXT_STYLE As String = "" 
Private Const TEXT_CLR As String = "&K7F7F7F" ' RGB(127, 127, 127) 
Private Const FTR_INDENT_RT As String = "   " 
Private Const FTR_INDENT_LT As String = "   " 

' ***************************************************************************** 
Private Function HOR_LINE_PORTRAIT() As String 
    HOR_LINE_PORTRAIT = String(128, "_") 
End Function 

' ***************************************************************************** 
Private Function HOR_LINE_LANDSCAPE() As String 
    HOR_LINE_LANDSCAPE = String(191, "_") 
End Function 

' ***************************************************************************** 
Public Sub CreateFooter_Landscape(_ 
     ByRef ws As Worksheet, _ 
     ByVal txt1 As String, _ 
     ByVal txt2 As String, _ 
     ByVal txt3 As String) 
    Dim txtL As String, txtC As String, txtR As String 
    Dim lf As String, cf As String, rf As String ' left, center, and right footer 

    txtL = "Some text1: " & txt1 
    txtC = "Some text2: " & txt2 
    txtR = "Some text3 " & txt3 

    lf = TEXT_STYLE & TEXT_CLR & FTR_INDENT_LT & txtL 
    cf = LINE_CLR & HOR_LINE_LANDSCAPE & Chr(10) & TEXT_STYLE & TEXT_CLR & txtC 
    rf = TEXT_STYLE & TEXT_CLR & txtR & FTR_INDENT_RT 

    ws.PageSetup.LeftFooter = lf 
    ws.PageSetup.CenterFooter = cf 
    ws.PageSetup.RightFooter = rf 
End Sub 
+0

이 코드를 실행하는 컴퓨터에 프린터가 설치되어 있습니까? 그렇다면 다른 것으로 변경하려고 했습니까? –

+0

@RichardMorgan, 예, (실제) 프린터를 설치했지만 기본 프린터가 PDF입니다. 나는 그것을 바꿔야 할까? – neizan

+0

잘 모르겠습니다. 과거에는 PageSetup 속성 설정시 프린터가없고 "가상"프린터가없는 문제가 발생했습니다. 또한이 답변이 도움이되는지 확인하십시오. http://stackoverflow.com/questions/18601744/excel-headers-footers-wont-change-via-vba-unless-blank –

답변

0

내가 아직 이에 대한 확실한 대답이 없어,하지만 내 시험에서 나는 VBA를 통해 머리글과 바닥 글을 설정하는 것을 무엇보다 (몇 가지를 발견했습니다) 매우 황당 :

  1. 나는 전체 페이지 너비를 스팬 밑줄 문자열의 형태로 중앙 바닥 글 섹션에 수평 바()했다. 나는 막대의 폭을 크게 줄이면 오류가 사라진다는 것을 알았다.그러나 바는 전체 페이지 너비에 걸쳐 있어야하므로 수용할만한 해결책은 아니며 단지 관찰 일뿐입니다.

  2. 머리글과 바닥 글을 설정하는 별도의 절차가 있습니다. 프로 시저의 매개 변수를 통해 꼬리말의 텍스트를 전달했습니다. 그러나 나는 다른 모든 것들을 그대로 놔두고 매개 변수 변수 (텍스트를 연결할 때)가 오류가 사라진 하드 코드 값으로 덮어 썼다면주의했다. 값을 하드 코딩 할 수 없으므로 다시 옵션을 사용할 수 없습니다.

  3. 또한 문자열을 연결하는 경우 함수 (즉, String이 반환 됨)가 직접 호출되었습니다. 그러나 함수 호출을 로컬 변수로 바꾼 경우 오류가 사라집니다. 나는이 변화를 만들었지 만, 다른 요인들 때문에 나는 여전히 오류를 얻는다.

나는 다른 것을 찾거나 "진짜"대답으로 운이 좋으면이 답변을 업데이트하려고합니다.

UPDATE
난 그냥 이미지에 밑줄에서 가로 막대를 변환 결국 내가이 일을 얻었다. 그래서 나는 중앙 섹션에서 밑줄을 긋 겠지만, 왼쪽과 오른쪽 섹션을 겹쳐서 어떤 종류의 문제가 발생했습니다. 나는 이탤릭체 스타일을 아직 추가하지 않으려 고 노력했다. 나는 그렇게 할 생각이 없다. 그것은 효과가 있습니다. 그리고 이것에 너무 많은 시간을 소비했습니다.