- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我相信范围有 255 个字符的限制,所以我将范围分成 6 个单元格
B1 到 B6(下面的单元格 B1 和单元格 B2 示例都远低于 255 个字符)。
A1:I15, A17:I40, A42:I65, A92:I114, A116:I140, A142:I168, A170:I196, A198:I224, A226:I252, A254:I280, A282:I308, A310:I336, A338:I364, A366:I392, A394:I420, A422:I448
A450:I476, A478:I504, A526:I552, A554:I580, A582:I608, A610:I636, A638:I664, A666:I690, A692:I707, A730:I750, A752:I773, A775:I794, A796:I815, A817:I830, A855:I877, A879:I905, A907:I926
Set rng = Union(shTemp.Range("B1"), shTemp.Range("B2"))
shTransformed.Activate
With ActiveSheet.PageSetup
.Zoom = False
.Orientation = xlPortrait
.FitToPagesWide = 1
.FitToPagesTall = False
.PrintArea = rng
End With
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="c:\temp\test.pdf", _
Quality:=xlQualityStandard, _
IgnorePrintAreas:=False, _
IncludeDocProperties:=True, _
OpenAfterPublish:=True
最佳答案
可以使用此解决方法通过添加水平分页符并隐藏打印区域之间的行来绕过打印区域范围地址的 255 个字符限制。然而,它仅适用于这种情况,因为每个打印区域中最右边的列是相同的(即 I),而且这种方法要求每个打印区域至少相隔一行。
它使用 OP 中定义的范围字符串成功测试。对表格名称、范围等进行一些修改。
Sub test()
Dim shTemp As Worksheet, shTr As Worksheet
Dim HideRng As Range, Rng As Range, MainRng As Range
Dim Ar As Range, cel As Range
Set shTemp = ThisWorkbook.Sheets(1)
Set shTr = ThisWorkbook.Sheets(2)
'To Dynamically Select Range containing Addresses
Dim SelRng As Range
Set SelRng = shTemp.Range("B1:B6") ' Default range
shTemp.Activate
On Error Resume Next
Set SelRng = Application.InputBox("Select the range containing Print Range Addresses", "Select Range", SelRng.Address, , , , , 8)
If Err > 0 Then
Err.Clear
Exit Sub
End If
On Error GoTo 0
If SelRng Is Nothing Then Exit Sub
For Each cel In SelRng.Cells
If cel.Value <> "" Then
If Not Range(cel.Value) Is Nothing Then
'Debug.Print Range(cel.Value).Address
If Rng Is Nothing Then
Set Rng = Range(cel.Value)
Else
Set Rng = Union(Rng, Range(cel.Value))
End If
End If
End If
Next
If Rng Is Nothing Then Exit Sub
With shTr
.Cells.PageBreak = xlPageBreakNone
pg = 1
maxcol = 1
For Each Ar In Rng.Areas
'Vartical Pagebreak: it is applicable only in this case where right column is same
If pg = 1 Then
Set MainRng = Ar(1, 1)
.VPageBreaks.Add Ar(1, Ar.Columns.Count).Offset(0, 1)
End If
'Ar(1, 1).Value = "Page " & pg
.HPageBreaks.Add Ar(Ar.Rows.Count, Ar.Columns.Count).Offset(1, 0)
If pg > 1 Then
If HideRng(HideRng.Rows.Count, 1).Row < Ar(1, 1).Row Then
Set HideRng = Range(HideRng, Ar(1, 1).Offset(-1, 0))
HideRng.EntireRow.Hidden = True
End If
End If
Set HideRng = Ar(Ar.Rows.Count, 1).Offset(1, 0)
If pg = Rng.Areas.Count Then Set MainRng = Range(MainRng, Ar(Ar.Rows.Count, Ar.Columns.Count))
pg = pg + 1
Next
End With
shTr.Activate
With ActiveSheet.PageSetup
.Zoom = False
.Orientation = xlPortrait
.FitToPagesWide = 1
.FitToPagesTall = False
.PrintArea = MainRng.Address
End With
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="c:\users\user\Desktop\test.pdf", _
Quality:=xlQualityStandard, _
IgnorePrintAreas:=False, _
IncludeDocProperties:=True, _
OpenAfterPublish:=True
End Sub
关于Excel 到 PDF,多个范围相同的工作表(字符串)但 PrintArea 255 字符串限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56719109/
尝试将范围变量设置为当前打印区域。 dim rng as range Set rng = ActiveSheet.PageSetup.PrintArea 还有比这更多的事情,但这就是我陷入困境的地方,
我正在使用 phpspreadsheet v1.3.1。 我正在构建一个 excel 文件(下载)并且一切正常。唯一的问题是定义 setPrintArea... 它总是将标准 PrintArea 返回
我正在尝试打印出标记为 Printarea 的部分。然而,这段代码有时运行良好,有时却运行不佳。它真的没有规则。问题是,我怎样才能使它 100% 可运行。当它运行良好时它会做什么。它打印该区域,将其另
不久前我问了一个关于 Excel 打印区域的最大字符串长度的问题: Maximum String Length of PrintArea in Excel 对于 Excel 2010,打印区域设置为
我有一个问题,我想知道是否有人可以帮助我,假设我在头部部分有一个 htlm 页面,我正在使用 然后我使用选项卡和打印按钮的功能,例如 $(document).ready(functi
我正在使用 printArea.js 一起打印网页的多个 div 部分。代码如下: $('div#key_retailer_overview,div#top_retailers, div#key_re
如何打印指定的 div(无需手动禁用页面上的所有其他内容)? 我想避免一个新的预览对话框,所以用这个内容创建一个新窗口是没有用的。 该页面包含几个表格,其中一个包含我要打印的 div - 该表格的样式
我正在尝试扩展我的 Excel 工作表的当前打印区域,但目前使用以下代码。它在第三个 .PageSetup.PrintArea 处中断我不知道为什么。 编码: With ActiveSheet
我使用Jquery函数printarea打印页面的一部分(表格的某些列)。 如果我将选择器类放在需要打印的两列中,如下所示: content1 content2 content3
我相信范围有 255 个字符的限制,所以我将范围分成 6 个单元格 B1 到 B6(下面的单元格 B1 和单元格 B2 示例都远低于 255 个字符)。 A1:I15, A17:I40, A42:I6
Excel 打印预览 UI 有 3 种打印设置: 打印事件工作表 打印整个工作簿 打印选择 我正在使用 EPPlus 即时生成 Excel 工作簿,并希望默认选择 Print Entire Workb
我是一名优秀的程序员,十分优秀!