增加Excel PrintArea的最大string长度
我问了一个关于Excel打印区域的最大string长度的问题:
Excel中PrintArea的最大string长度
对于Excel 2010,“打印区域”设置为255。
我认为这是一个只读属性,但(在这里抓着吸pipe),有什么办法来增加打印区域的长度? 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“
运行时错误1004 – (261个字符)
所以,我想现在我应该设置多个命名范围,然后设置活动页面打印区域,依次使用每个命名范围?
非常感谢。
作弊命名范围:
Range("A1:C3,A5:B6,C7:D8").Name = "MyNamedRange"
然后
ActiveSheet.PageSetup.PrintArea = "MyNamedRange"
似乎命名范围也有255个字符的限制。
下一个解决scheme是隐藏你不想打印的行:
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
我把打印区域总数分成不超过255个字符的块。
我将每个块导出到一个单独的excel行,然后遍历每一行,设置excel打印区域,并打印,因为我去了。