将打印区域设置为大于 255 个字符的范围

将打印区域设置为大于 255 个字符的范围

我编写了一些 VBA 代码来定义一个有点复杂的范围,我想将工作表的打印区域设置为该范围。但是,当我通过以下方式设置打印区域时

Worksheets("Sheet1").PageSetup.PrintArea = myRange.Address

打印区域似乎被截断为我的范围的前 255 个字符。

我有哪些选项可以仅打印(实际上是保存为 .pdf)我定义的范围?我想避免任何过于手动的操作,因为我要处理大约 150 个工作簿。我使用的是 64 位 Excel 2016。

我知道这里有一个类似的问题(https://stackoverflow.com/questions/11410374/increase-the-maximum-string-length-of-excel-printarea) 但接受的解决方案并不令人满意,因为生成的 pdf 中的页码不正确。

答案1

这些只是权宜之计,而不是修复。尽可能使用宏,例如 #1

  1. 隐藏所有不想打印的单元格。打印 A1:z99。取消隐藏所有单元格。

  2. 是否临时创建新工作表。

测试

sub macro1()
Location = "A1 B2:B10 C4:C10 "
Position = 1

While (Position < Len(Location))

found = InStr(Position, Location, " ")

if found=0 then found=len(location)

    printRange = Mid(Location, Position, (found - Position))
    Sheets("Sheet1").Select
    Range(printRange).Select
    Selection.Copy
    Sheets("Sheet2").Select
    Range(printRange).Select
    ActiveSheet.Paste
    Position = found + 1

Wend
End Sub

打印整个临时表。

删除(或不删除)临时表。

  1. 与 #2 类似,但你也可以

    temp.a1 = 连接(a1、a2、a5、a7、a8、a11)

相关内容