ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1766|回复: 10

[求助] 跪求用VBA另存为PDF,并且给PDF加上页码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-19 20:12 | 显示全部楼层 |阅读模式
各位大神,用VBA另存为PDF这个功能我实现了,但是要怎么给这个PDF加上页码?比如:“第*页,共*页”,跪求跪求。。。

TA的精华主题

TA的得分主题

发表于 2023-3-19 20:47 | 显示全部楼层
额。。。。。。加脚注吧
捕获.JPG

TA的精华主题

TA的得分主题

发表于 2023-3-19 21:33 | 显示全部楼层
最简单的是: 生成之前加入页码
直接向PDF加页码 可参考:https://club.excelhome.net/thread-1654951-1-1.html

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-19 23:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Yalishanda30 发表于 2023-3-19 20:47
额。。。。。。加脚注吧

对。。就是加脚注。。大神能否教教小白我?

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-19 23:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
opiona 发表于 2023-3-19 21:33
最简单的是: 生成之前加入页码
直接向PDF加页码 可参考:https://club.excelhome.net/thread-1654951-1-1.h ...

感谢大神提供的插件,就是添加页码的时候能不能替换原来的文件?

TA的精华主题

TA的得分主题

发表于 2023-3-19 23:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
录制宏,再看看代码

TA的精华主题

TA的得分主题

发表于 2023-3-20 00:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 vistababy 于 2023-3-20 11:06 编辑

肯定是导出之前加页码啊,,难道导出之后再加??那只能靠pdf编辑器了,随便加。

截屏_2023-03-20_00-14-30.png

TA的精华主题

TA的得分主题

发表于 2023-3-20 05:05 | 显示全部楼层
Sub SaveAsPDFWithPageNumber()
   
    '定义变量
    Dim ws As Worksheet
    Dim pdfName As String, pdfPath As String
    Dim pageNumber As Integer, totalPages As Integer
   
    '选择要另存为PDF的工作表
    Set ws = ActiveSheet
   
    '设置PDF的保存路径和文件名
    pdfPath = "C:\Users\UserName\Desktop\"
    pdfName = "MyPDFFile.pdf"
   
    '将工作表保存为PDF
    ws.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=pdfPath & pdfName, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
   
    '打开保存的PDF文件
    Dim acrApp As Object, acrDoc As Object
    Set acrApp = CreateObject("AcroExch.App")
    Set acrDoc = CreateObject("AcroExch.AVDoc")
    acrDoc.Open pdfPath & pdfName, "Acrobat"
    acrDoc.BringToFront
   
    '获取PDF的总页数
    totalPages = acrDoc.GetNumPages()
   
    '在每页的页脚添加页码
    For pageNumber = 1 To totalPages
        acrDoc.gotoPage pageNumber
        acrDoc.SelectText "Page ", pageNumber
        acrDoc.AddText "第" & pageNumber & "页,共" & totalPages & "页"
    Next pageNumber
   
    '保存并关闭PDF文件
    acrDoc.Save PDSaveFull, pdfPath & pdfName
    acrDoc.Close False
   
    '释放对象
    Set acrDoc = Nothing
    Set acrApp = Nothing
   
End Sub

TA的精华主题

TA的得分主题

发表于 2023-3-20 07:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-3-20 09:04 | 显示全部楼层
totalPages = acrDoc.GetNumPages() 和totalPages = acrDoc.GetNumPages 都有报错,对象不支持该属性或方法
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-29 14:26 , Processed in 0.040880 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表