EXCEL表格任一单元格内显示其所在页码

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

EXCEL表格的任一当前单元格内显示其所在页码方法

一、首先调整视图为页面视图,横向只有一个分页符,则用下面的方法非常简便

在插入→名称→定义→新建,定义一个名称:PageNumber,当然也可以取一个你喜欢的名字比如:Love,在引用位置中输入

=IF(ISERROR(MATCH(ROW(),GET.DOCUMENT(64),1)),1,MATCH(ROW(),GET.DOCUMENT(64),1) +1)

在当单元格中输入“=PageNumber”,回车,OK

二、若页面视图,横向有多个分页符,则

(一)在插入→名称→定义→新建,定义一个名称:PageNumber,在引用位置中粘贴输入

=IF(GET.DOCUMENT(61),(IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),GET.DOCUMENT(10) )),0,FREQUENCY(GET.DOCUMENT(64),GET.DOCUMENT(10)))+1)*IF(ISERROR(FREQUENCY(GE T.DOCUMENT(65),Column())),0,FREQUENCY(GET.DOCUMENT(65),Column()))+IF(ISERROR(FR EQUENCY(GET.DOCUMENT(64),Row())),0,FREQUENCY(GET.DOCUMENT(64),Row()))+1,(IF(ISE RROR(FREQUENCY(GET.DOCUMENT(65),GET.DOCUMENT(12))),0,FREQUENCY(GET.DOCUME NT(65),GET.DOCUMENT(12)))+1)*IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),Row())),0,FRE QUENCY(GET.DOCUMENT(64),Row()))+IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),Colum n())),0,FREQUENCY(GET.DOCUMENT(65),Column()))+1)*ISNUMBER(NOW())

(二)上述公式不便于阅读,转换为VBA便于阅读:

VBA代码如下:

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

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

'一个文件第一次使用前须先运行一遍本宏以后则不必了,

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.DOCUMENT(64), Row()))" 'hNum为本单元格上方的水平分页符个数

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

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

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

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

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

"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),lstColumn)),0,FREQUENCY(GET.DOCUMENT (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编辑器;

⑵点击开发工具--宏,找到并点击“定义页码及总页数名称”,再点击运行;

⑶在任一单元格输入公式“=ThisPageNo”则在当前单元格显示该单元格所在页码;

⑷在任一单元格输入公式“=PagesCount”,则显示总页数;

⑸输入“=TEXT(ThisPageNo,"第0页")&TEXT(PagesCount,"共0页") ”,在同一单元

格显示当前页码和总页数

三、关于用到的宏函数知识补充:

GET.DOCUMENT(type_num, name_text)

Type_num 指明信息类型的数。下表列出type_num 的可能值与对应结果。

Type_num 返回

1 如果工作簿中不只一张表,用文字形式以“[Book1]Sheet1”的格式返回工作表的文件名。否则,只返回工作簿的文件名。工作簿文件名不包括驱动器,目录或窗口编号。通常最好使用GET. DOCUMENT(76) 和GET. DOCUMENT(88) 来返回活动工作表和活动工作簿的文件名。

2 作为文字,包括name_text的目录的路径。如果工作簿name_text未被保存,返回错误值#N/A。

3 指明文件类型的数

相关文档
最新文档