我前一段时间问了一个关于Excel打印区域的最大字符串长度的问题:
Maximum String Length of PrintArea in Excel
对于Excel 2010,打印区域设置为255。
我认为这是一个只读属性但是(抓住吸管),有没有办法增加打印区长度? Excel插件可能吗?
如果没有,一旦达到最大值255,我将不得不以编程方式设置一个新的打印区域。
修改
我尝试过以下答案:
范围(“A1:C3,A5:B6,C7:D8,E1:E2,G1:G2,A10:A11,A13:A14,A16:A17,A19:A20,A22:A23,A25:A26, A28:A29,A30:A31,A33:A35,A37:A38,A40:A41,A43:A44,A46:A47,A49:A50,A52:A53,A55:A56,A58:A59,A61:A63,A65: A66,A68:A69,A71:A72,A74:A75,A77:A78,A80:A81,A83:A84,A86:A87,A88:A89,A91:A92“)。Name =”MyNamedRange“
工作正常 - 253个字符。
范围(“A1:C3,A5:B6,C7:D8,E1:E2,G1:G2,A10:A11,A13:A14,A16:A17,A19:A20,A22:A23,A25:A26, A28:A29,A30:A31,A33:A35,A37:A38,A40:A41,A43:A44,A46:A47,A49:A50,A52:A53,A55:A56,A58:A59,A61:A63,A65: A66,A68:A69,A71:A72,A74:A75,A77:A78,A80:A81,A83:A84,A86:A87,A88:A89,A91:A92,A94:A95“)。Name =”MyNamedRange“< / p>
运行时错误1004 - (261个字符)
所以,我想我现在应该设置多个命名范围,然后设置活动工作表打印区域,依次使用每个命名范围?
非常感谢。
答案 0 :(得分:2)
作弊命名范围:
<击> Range("A1:C3,A5:B6,C7:D8").Name = "MyNamedRange"
然后
ActiveSheet.PageSetup.PrintArea = "MyNamedRange"
似乎命名范围也有255个字符限制。
下一个解决方案是隐藏您不想要打印的行:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Sheet1" Then
Cancel = True ' cancel default print method so we can print out stuff ourselves
Application.EnableEvents = False
Application.ScreenUpdating = False
With ActiveSheet
.Rows("12").EntireRow.Hidden = True ' hide the rows you want hidden
.Rows("15").EntireRow.Hidden = True ' hide the rows you want hidden
.PrintOut
.Rows("12").EntireRow.Hidden = False ' unhide them after
.Rows("15").EntireRow.Hidden = False
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
答案 1 :(得分:1)
我将整个打印区域分成不超过255个字符的块。
我将每个块导出到一个单独的excel行中,然后遍历每一行,设置excel打印区域,并打印出来。