ExcelHome技术论坛

 找回密码
 免费注册
QQ登录 只需一步,快速开始
   
高效办公必会的Office99uu优优 永久免费,网表让Excel秒变数据库 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! 国内首部Excel函数公式学习大典 职场充电黑科技, Office微99uu优优 免费下载Excel行业应用视频
300集Office 2010微99uu优优 Tableau-数据可视化工具 突破Excel限制,用活字格提高效率 12门Excel免费公开课任你学
你的Excel 201099uu优优学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
查看: 32470|回复: 101
打印 上一主题 下一主题

[原创] 在EXCEL单元格内插入页码、总页数的完美解决方案(2010-7-12)

  [复制链接]
TA的精华主题TA的得分主题
跳转到指定楼层
1
发表于 2010-5-12 00:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
先请大家如同电视购物频道中的导购员一样情绪激昂、声情并茂地念下面这一段广告词:
许许多多的人,在本论坛中发贴、求助,想要实现在单元格中(而不是在页眉或页脚中)插入当前页码和总页码数,却一直未能如愿,现在好了,有了本人原创的“ThisPageNo”和“PagesCount”两个名称定义,你将能梦想成真!
请看——

更新:解决10楼所发现的问题。(2010-7-12)

[ 本帖最后由 cbtaja 于 2010-7-12 15:01 编辑 ]
EXCEL单元格中插入页码、总页数的完美解决方案.rar 8.58 KB, 下载次数: 2017
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏15 分享分享 有用有用 无用无用
TA的精华主题TA的得分主题
2
 楼主| 发表于 2010-5-12 00:17 | 只看该作者 |楼主
为了便于大家使用,我把定义名称的过程录制成宏代码,帮助你快速、正确地添加这些名称定义:
Sub 定义页码及总页数名称()
'
' 定义页码及总页数名称 Macro
' 宏由 cbtaja 录制,时间: 2010-5-12
'

'
    ActiveWorkbook.Names.Add Name:="ColFirst", RefersToR1C1:= _
        "=GET.DOCUMENT(61)" '判断打印顺序的设置类型
    ActiveWorkbook.Names.Add Name:="lstRow", RefersToR1C1:= _
        "=GET.DOCUMENT(10)" '本工作表已用到的最大行数
    ActiveWorkbook.Names.Add Name:="lstColumn", RefersToR1C1:= _
        "=GET.DOCUMENT(12)" '本工作表已用到的最大列数
    ActiveWorkbook.Names.Add Name:="hNum", RefersToR1C1:= _
        "=IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),Row())),0,FREQUENCY(GET.DOCUMENT(64),Row()))" 'hNum为本单元格上方的水平分页符个数
    ActiveWorkbook.Names.Add Name:="vNum", RefersToR1C1:= _
                "=IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),Column())),0,FREQUENCY(GET.DOCUMENT(65),Column()))" ''本单元格左边的垂直分页个数
    ActiveWorkbook.Names.Add Name:="hSum", RefersToR1C1:= _
        "=IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),lstRow)),0,FREQUENCY(GET.DOCUMENT(64),lstRow))" ''本工作表最后一个单元格上方的水平分页符个数
    ActiveWorkbook.Names.Add Name:="vSum", RefersToR1C1:= _
                "=IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),lstColumn)),0,FREQUENCY(GET.DOCUMENT(65),lstColumn))" ''本工作表最后一个单元格左边的垂直分页个数
    ActiveWorkbook.Names.Add Name:="ThisPageNo", RefersToR1C1:= _
        "=IF(ColFirst,(hSum+1)*vNum+hNum+1,(vSum+1)*hNum+vNum+1)*ISNUMBER(NOW())" '单元格所在页码
    ActiveWorkbook.Names.Add Name:="PagesCount", RefersToR1C1:= _
        "=GET.DOCUMENT(50)*ISNUMBER(NOW())" '本工作表的总页数
End Sub

[ 本帖最后由 cbtaja 于 2010-7-12 13:15 编辑 ]
TA的精华主题TA的得分主题
3
 楼主| 发表于 2010-5-12 09:31 | 只看该作者 |楼主
竟然无人识得此宝,就让它沉到东海龙宫去做根定海神针吧,且看孙大圣何时到来。
TA的精华主题TA的得分主题
4
发表于 2010-5-12 10:40 | 只看该作者
TA的精华主题TA的得分主题
5
发表于 2010-5-22 23:18 | 只看该作者
TA的精华主题TA的得分主题
6
 楼主| 发表于 2010-5-26 20:08 | 只看该作者 |楼主
原帖由 youliqi 于 2010-5-22 23:18 发表
谢谢,好东西总会有得上的

:handshake :handshake谢谢你顶贴。 有人能用得上,就不算白忙活了。
可能我发这贴时没选对版块:这种在单元格内插入页码、总页数的方法,只在一些特殊方面,如做财务帐页或一些固定总页数的台帐表格时会有用的,
而大多数人只使用页眉页脚内插入页码的功能。

自己最后顶一次。不想再去别的版块发重复主题了,如果哪位版主觉得本方法或有少许价值,就请您把它移到合适的版块。
以后再能翻看本贴的人,那是与本贴有缘了。

[ 本帖最后由 cbtaja 于 2010-5-26 20:12 编辑 ]
TA的精华主题TA的得分主题
7
发表于 2010-5-26 20:17 | 只看该作者
TA的精华主题TA的得分主题
8
发表于 2010-5-27 00:04 | 只看该作者
TA的精华主题TA的得分主题
9
发表于 2010-5-29 18:56 | 只看该作者
TA的精华主题TA的得分主题
10
发表于 2010-7-4 10:24 | 只看该作者
先顶再下.:handshake
发现一个问题:
在没有垂直分页符的时候,好像会出错.

[ 本帖最后由 19720205 于 2010-7-4 10:53 编辑 ]

评分

参与人数 2鲜花 +4 收起 理由
xiur2009 + 2 感谢帮助
DAHAI31415 + 2 值得肯定
查看全部评分
您需要登录后才可以回帖 登录 | 免费注册
本版积分规则
关闭

最新热点上一条 /1 下一条

关注官方微信,每天坐享新鲜教程
手机版|关于我们|联系我们|ExcelHome    GMT+8, 2018-1-18 19:21 , Processed in 0.084214 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.3 © 2001-2017 Wooffice Inc.
    沪公网安备 31011702000001号 沪ICP备11019229号 本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师
快速回复 返回顶部 返回列表
99uu优优