gpt4 book ai didi

excel - PDF每个命名范围到单个页面 - VBA

转载 作者:行者123 更新时间:2023-12-04 22:29:52 24 4
gpt4 key购买 nike

我有一个 excel 模型,可以根据用户的输入动态更改范围的数量和名称。然后将所有命名范围填充到引用选项卡上,它们的位置位于相应的单元格中。我需要编写一个宏,将单个页面上的每个命名范围都转换为 PDF,但作为单个 PDF 文件。

我已经尝试了所有可以找到显示 PDF 范围的各种方法的论坛,但没有任何方法可以统一解决两个特定问题:

1) 命名范围的数量会动态变化。我不能在我的 VBA 代码中静态命名它们。
2) 命名范围位于 10 个单独的工作表上。
3) 一些工作表上有多个命名范围。它并不总是一对一的,这意味着我需要它来 PDF 来自同一张表的多个命名范围,但结果仍然必须是每个 PDF 页面的一个命名范围。

有人可以帮助我获取以下列表并实现我的目标,即为每个命名范围创建一个具有单个页面的 PDF 文件吗?作为引用,我的命名范围表如下所示:

Named Range, Location

Range1, =Sheet1!$K$2:$R$21
Range2, =Sheet2!$K$2:$R$21
Range3, =Sheet3!$K$2:$R$21
Range4, =Sheet4!$K$2:$R$21
Range5, =Sheet5!$K$2:$R$21
Range6, =Sheet6!$K$2:$R$21
Range7, =Sheet7!$K$2:$R$21
Range8, =Sheet8!$K$2:$R$21
Range9, =Sheet9!$K$2:$R$21
Range10, =Sheet10!$B$2:$I$21
Range10, =Sheet10!$K$2:$R$21

我在这个问题上尝试了多个角度。我试图将所有命名范围移动到一个选项卡,但这非常困难,因为命名范围具有不同的格式,这意味着它不像复制和粘贴那么简单。
我很犹豫是否在这里显示任何代码,因为我尝试过的 20 次迭代离实现我的目标还差得很远。非常感谢任何关于如何做到这一点的结构性指导。

我希望的最终结果是一个宏,它可以从 Excel 工作簿中对所有命名范围进行 PDF,每个命名范围在 PDF 文件中都有自己的页面。

最佳答案

归功于@Tim Williams 的想法 ,我只是提供基本的骨架代码作为简单的例子,可以根据需要进行修改。

Sub test()
Dim Rng As Range
Dim Ws As Worksheet, Wb As Workbook
Dim Nm As Name
Set Wb = Application.Workbooks.Add

For Each Nm In ThisWorkbook.Names
Set Rng = Nm.RefersToRange
Set Ws = Rng.Worksheet
With Ws.PageSetup
.PrintArea = Rng.Address
' may set other pagesetup properties according to requirement
End With
Ws.Copy After:=Wb.Sheets(Wb.Sheets.Count)
Next Nm

Wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\user\Documents\Range to PDF.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Wb.Close False
Set Wb = Nothing
End Sub

关于excel - PDF每个命名范围到单个页面 - VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54032990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com