EXCEL单元格中插入页码、总页数的完美解决方案

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EXCEL单元格中插入页码、总页数的完美解决方案

先说明:此方案我是在ExcelHome论坛里看到的,但对于初学者来说不会用,我研究了很久,总结成如下步骤,任何人都可学会,方便大家使用。

一、在VB中定义两个名称“ThisPageNo”和“PagesCount”(Alt+F11进入VB,左侧右键插入模块,然后在右侧窗体中输入下列模块)

Sub 定义页码及总页数名称()

'

' 定义页码及总页数名称Macro

' 宏由cbtaja 录制,时间: 2010-5-12

'

'

s.Add Name:="ColFirst", RefersToR1C1:= _

"=GET.DOCUMENT(61)" '判断打印顺序的设置类型

s.Add Name:="lstRow", RefersToR1C1:= _

"=GET.DOCUMENT(10)" '本工作表已用到的最大行数

s.Add Name:="lstColumn", RefersToR1C1:= _

"=GET.DOCUMENT(12)" '本工作表已用到的最大列数

s.Add Name:="hNum", RefersToR1C1:= _

"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),Row())),0,FREQUENCY(GET.DOCUM ENT(64),Row()))" 'hNum为本单元格上方的水平分页符个数

s.Add Name:="vNum", RefersToR1C1:= _

"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),Column())),0,FREQUENCY(GET.DOC UMENT(65),Column()))" ''本单元格左边的垂直分页个数

s.Add Name:="hSum", RefersToR1C1:= _

"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),lstRow)),0,FREQUENCY(GET.DOCUM ENT(64),lstRow))" ''本工作表最后一个单元格上方的水平分页符个数

s.Add Name:="vSum", RefersToR1C1:= _

"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),lstColumn)),0,FREQUENCY(GET.DOC UMENT(65),lstColumn))" ''本工作表最后一个单元格左边的垂直分页个数

s.Add Name:="ThisPageNo", RefersToR1C1:= _

"=IF(ColFirst,(hSum+1)*vNum+hNum+1,(vSum+1)*hNum+vNum+1)*ISNUMBER(NOW())" '单元格所在页码

s.Add Name:="PagesCount", RefersToR1C1:= _

"=GET.DOCUMENT(50)*ISNUMBER(NOW())" '本工作表的总页数

End Sub

二、在VB窗口中,菜单“调试-编译VBAProject”,然后按F5运行。

三、回到Excel中,在要插入页码和总页数的单元格输入

=TEXT(ThisPageNo,"第0页")&TEXT(PagesCount,"共0页")

完美解决

相关文档
最新文档