我使用Excel 2007中下面的代碼:錯誤設置時Worksheet.PageSetup.XxxFooter
Dim ws As Worksheet, lf As String, cf As String, rf As String
...
rf = "&""-,Italic""&K7F7F7F" & "Some text"
...
ws.PageSetup.LeftFooter = lf
ws.PageSetup.CenterFooter = cf
ws.PageSetup.RightFooter = rf
我上最後一行出現以下錯誤。
Run-time error '1004': Unable to set the RightFooter property of the PageSetup class
的LeftFooter
和CenterFooter
屬性被置就好了。但是,如果我更改了屬性的設置順序,那麼最後一個,即LeftFooter
或CenterFooter
會觸發錯誤,並且前兩個總是成功設置。所以這告訴我這不是頁腳或任何語法的錯誤。
請注意,我將三種頁腳部分中的一些字體設置爲斜體並使用不同的顏色。如果我刪除了有關更改爲斜體和顏色的部分(僅在頁腳部分的最後一個部分),那麼它將無誤地執行。
編輯此外,如果我只刪除斜體部分,那麼代碼將執行沒有錯誤。 /編輯
我最初得到這個錯誤,然後玩弄變量和連接,直到最終它的工作,但現在它再次打破,我不知道這個問題。
This question似乎可能有關,但我不確定。我試過修復那個人的工作(使用Replace
,除了返回一個新的字符串外,其他什麼也不做),但是我仍然得到相同的錯誤。
我不使用串聯設置lf
,cf
和,合併的變量,和很多其他的東西(在絕望中),不應該有效果反正嘗試過了,我不斷收到此錯誤。有誰知道這個問題會是什麼?
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
您是否在運行此代碼的計算機上安裝了打印機?如果是這樣,你有沒有嘗試將它改爲別的? –
@RichardMorgan,是的,我確實安裝了(物理)打印機,但我的默認打印機是PDF打印機。我應該改變它嗎? – neizan
我不確定。過去,我在設置PageSetup屬性時遇到了沒有打印機和「虛擬」打印機的問題。另外,看看這個答案是否有幫助:http://stackoverflow.com/questions/18601744/excel-headers-footers-wont-change-via-vba-unless-blank –