【发布时间】:2014-04-02 01:38:38
【问题描述】:
我使用的是 Excel 2007。这是代码:
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 都会触发错误,而前两个总是设置成功。所以这告诉我这不是页脚或任何东西的语法错误。
请注意,我将所有三个页脚部分中的一些字体设置为斜体和不同的颜色。如果我删除了关于更改为斜体和颜色的部分(仅在页脚的最后一个部分),那么它会毫无错误地执行。
编辑另外,如果我只删除斜体部分,那么代码执行没有错误。/EDIT
我一开始遇到了这个错误,然后玩弄了变量和串联,直到它终于成功了,但现在它又坏了,我无法找出问题所在。
This question 似乎可能相关,但我不确定。我尝试了对那个人有用的修复程序(使用Replace,除了返回一个新字符串之外什么都不做),但我仍然得到同样的错误。
我尝试不使用串联来设置lf、cf 和rf、合并变量以及许多其他无论如何都不应该产生影响的东西(绝望中),我不断得到这个错误。有谁知道问题可能是什么?
更新
我从来没有找到我的问题的答案,所以我只是删除了斜体字体样式,其余的都在工作。我已经够高兴了。不过,现在我不得不为横向工作表(另一个是纵向工作表)创建页眉和页脚。页眉和页脚与纵向工作表完全相同,只是中间页脚部分的某些文本更长。其余的完全一样。复制了创建页脚的整个过程,只更改了一段文本。现在我得到了和以前一样的错误(没有斜体部分)。和以前一样,它发生在设置的最后一个页脚部分。请注意,纵向页脚仍然可以正常工作。这让我发疯了,我正在浪费宝贵的时间来处理你认为相当简单的事情。
任何人都可以复制错误吗?
这是完整的代码:
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 打印机。我应该改变它吗?
-
我不确定。过去,我在设置 PageSetup 属性时遇到了没有打印机和“虚拟”打印机的问题。另外,看看这个答案是否有帮助:stackoverflow.com/questions/18601744/…
-
@RichardMorgan,我更换了打印机,但仍然出现错误。我尝试了代码
&L等,但仍然出现错误。我正在格式化的工作表是一张新工作表,因此页脚中没有任何信息(这似乎是您发布的链接中的问题)。我的问题肯定与设置字体样式和颜色有关,但我不确定为什么它在前两个(格式相同)中有效,但在最后一个失败。