1

不久前我问了一个关于 Excel 打印区域的最大字符串长度的问题:

Excel中PrintArea的最大字符串长度

对于 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"

运行时错误 1004 -(261 个字符)

所以,我想现在我应该设置多个命名范围,然后设置活动图纸打印区域,依次使用每个命名范围?

非常感谢。

4

2 回答 2

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
于 2012-07-10T19:42:16.563 回答
1

我将总打印区域分成不超过 255 个字符的块。

我将每个块导出到一个单独的 excel 行中,然后遍历每一行,设置 excel 打印区域,然后打印。

于 2012-11-14T21:26:28.783 回答