EXCEL表格任一单元格内显示其所在页码_第1页
EXCEL表格任一单元格内显示其所在页码_第2页
EXCEL表格任一单元格内显示其所在页码_第3页
EXCEL表格任一单元格内显示其所在页码_第4页
EXCEL表格任一单元格内显示其所在页码_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EXCEL 表格的任一当前单元格内显示其所在页码方法一、首先调整视图为页面视图,横向只有一个分页符,则用下面的方法非常简便 在 插入名称定义新建, 定义一个名称: PageNumber ,当然也可以取一个你喜欢的名字比如: Love, 在引用位置中输入 =IF(ISERROR(MATCH(ROW(),GET.DOCUMENT(64),1),1,MATCH(ROW(),GET.DOCUMENT(64),1) +1) 在当单元格中输入“ =PageNumber ” ,回车, OK二、若页面视图,横向有多个分页符,则(一)在 插入名称定义新建,定义一个名称: PageNumber ,在引用位置中粘贴

2、输入 =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,(

3、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()(二)上述公式不便于阅

4、读,转换为 VBA 便于阅读:VBA 代码如下:Sub 定义页码及总页数名称 ()' 定义页码及总页数名称 Macro'一个文件第一次使用前须先运行一遍本宏以后则不必了,ActiveWorkbook.Names.Add Name:="ColFirst", RefersToR1C1:= _"=GET.DOCUMENT(61)" ' 判断打印顺序的设置类型ActiveWorkbook.Names.Add Name:="lstRow", RefersToR1C1:= _"=GET.DOCUMENT(10)&

5、quot; ' 本工作表已用到的最大行数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()"

6、 '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(F

7、REQUENCY(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)" '' 本工作表最后一个单元

8、格左边的垂直分页个数ActiveWorkbook.Names.Add Name:="ThisPageNo", RefersToR1C1:= _第 2 页 共 14 页"=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()&

9、quot; '本工作表的总页数End Sub使用方法:将代码粘贴进 工具- 宏-VB 编辑器;点击 开发工具 - 宏,找到并点击“定义页码及总页数名称”,再点击运行;在任一单元格输入公式“ =ThisPageNo ” 则在当前单元格显示该单元格所在页码; 在任一单元格输入公式“ =PagesCount ”,则显示总页数;输入“ =TEXT(ThisPageNo," 第 0 页 ")&TEXT(PagesCount," 共 0 页") ”,在同一单元 格显示当前页码和总页数三、关于用到的宏函数知识补充:GET.DOCUMENT(type_n

10、um, name_text)Type_num 指明信息类型的数。下表列出 type_num 的可能值与对应结果。Type_num 返回1 如果工作簿中不只一张表,用文字形式以“ Book1Sheet1 ”的格式返回工作表的文件名。 否则,只返回工作簿的文件名。工作簿文件名不包括驱动器,目录或窗口编号。通常最好使用 GET. DOCUMENT(76) 和 GET. DOCUMENT(88) 来返回活动工作表和活动工作簿的文件名。2 作为文字,包括 name_text 的目录的路径。如果工作簿 name_text 未被保存,返回错误值#N/A 。3 指明文件类型的数1 = 工作表2 = 图表3 =

11、 宏表4 = 活动的信息窗口5 = 保留文件6 = 模块表7 = 对话框编辑表4 如果最后一次存储文件后表发生了变化,返回 TRUE;否则,返回 FALSE。5 如果表为只读,返回 TRUE;否则,返回 FALSE。6 如果表设置了口令加以保护,返回 TRUE;否则,返回 FALSE。7 如果表中的单元格,表中的内容或图表中的系列被保护,返回TRUE;否则,返回 FALSE8 如果工作簿窗口被保护,返回 TRUE;否则,返回 FALSE。下面四个 type_num 的数值只用于图表。Type_num 返回9 指示主图表的类型的数。1 = 面积图2 = 条形图3 = 柱形图4 = 折线形5 =

12、饼形6 = XY ( 散点图 )7 = 三维面积图8 = 三维柱形图9 = 三维折线图10 = 三维饼图11 = 雷达图12 = 三维等形图13 = 三维曲面图14 = 圆环图10 指示覆盖图表类型的数,同以上主图表的1,2,3,4,5,6,11和 14 。没有覆盖图表的情况下返回错误值 #N/A11 主图表系列的数12 覆盖图表系列的数下列 Type_num 的值用于工作表,宏表,在适当的时候用于图表。Type_num 返回9 第一个使用行的编号。如文件是空的,返回零。10 最后一个使用行的偏号。如文件是空的,返回零。11 第一个使用列的编号。如文件是空的,返回零。12 最后一个使用列的编号

13、。如文件是空的,返回零。13 窗口的编号。14 指明计算方式的数。1 = 自动生成 有2 = 除表格外自动生成3 = 手动15 如果在选项对话框的重新计算标签下选择迭代计算选择框,返回TRUE;否则,返回 FALSE。16 最多迭代次数。17 迭代计算最大误差。18 如果在选项对话框的重新计算标签下选择更新远程引用选择框,返回TRUE;否则,返回FALSE。19 如果在选项对话框的重新计算标签下选择以显示精度为准选择框,返回TRUE;否则,返回FALSE。20 如果在选项对话框的重新计算 标签下选择1904 年日期系统 选择框,返回 TRUE;否则,返回FALSE。Type_num 是 21-

14、29 之间的数,对应于 Microsoft Excel 先前版本的四种默认字体。提供这些值是为 了宏的兼容性。下列 Type_num 数值应用于工作表,宏表和指定的图表。Type_num 返回30 以文字形式返回当前表合并引用的水平数组。如果列表是空的,返回错误值 #N/A 。31 1 至 11 之间的一个数,指明用于当前合并的函数。对应于每个数的函数列于下面CONSOLIDATE 函数中,默认函数为 SUM 。32 三项水平数组,用于指明 Data Consolidate 对话框中选择框的状态。如果此项为 TRUE, 选择选择框;如果此项为 FALSE,清除选择框 . 第一项指明顶端行选择框

15、,第二项指最左列 选择框 ,第三项指与源数据链接选择框。33 如果选择了选项对话框的重新计算 标签下的保存前自动重算 选择框,返回 TRUE; 否则,返回 FALSE。34 如工作簿定义为只读,返回 TRUE;否则,返回 FALSE。35 工作簿为写保护,返回 TRUE;否则,返回 FALSE。36 如文件设置了写保护口令,并以可读 / 可写方式打开,返回最初使用写保护口令存文件的用户的名字。如文件以只读形式打开,或文件未设置口令,返回当前用户的名字。37 对应于显示在另存为对话框中的文档的文件类型。所有Microsoft Excel可识别的文件SAVE.AS 函数中。38 如果选择了分级显示

16、设置对话框中的明细数据的下方选择框,返回TRUE;否则,返回 FALSE。39 如果选择了分级显示设置对话框中的明细数据的右侧选择框,返回TRUE;否则,返回 FALSE。40 如果选择了另存为 对话框中的生成备份文件 选择框,返回 TRUE;否则,返回 FALSE41 1 至 3 中的一个数字,指明是否显示对象:1 = 显示所有对象2 = 图和表的位置标志符3 = 所有对象被隐藏42 包括表中所有对象的水平数组,如无对象,返回错误值 #N/A 。第 7 页 共 14 页43 如果在选项对话框的重新计算 标签下选择了保存外部链接值 选择框,返回 TRUE;否则,返回 FALSE。44 如文件中

17、的对象被保护,返回 TRUE;否则,返回 FALSE。45 0 至 3 中的一个数,指明窗口同步化方式。0 = 不同步1 = 水平方向上同步2 = 垂直方向上同步3 = 水平方向,垂直方向上均同步46 七项水平数组,用于打印设置,可由 LINE.PRINT 宏函数完成。-建立文字-左边距-右边距-顶边距-底边距-页长-用于指明打印时输出是否格式化的逻辑值,格式化为 TRUE,非格式化为 FALSE。47 如果在选项对话框的转换标签中选择了转换表达式求值选择框,返回TRUE;否则,返回 FALSE。48 标准栏宽度设置下列 type_num 值对应于打印与页的设置。Type_num 返回49 框

18、输入了505152535455565758596061开始页的页码,如未指明或在页面设置对话框的页面标签下的起始页码文字 自动”,返回错误值 #N/A 。当前设置下欲打印的总页数,其中包括注释,如果文件为图表,值为1。如只打印注释时的总页数。如文件为图表类型,返回错误值 #N/A 。 在当前指定的单位中,指明边距设置 (左,右,顶,底 )的四项水平数组。 指明方向的数字 :1 = 纵向2 = 横向 文本串的页眉,包括格式化代码。 文本串的脚注,包括格式化代码。 包括两个逻辑值的水平数组,对应于水平垂直方向置中。 如打印行或列的上标题,返回 TRUE;否则,返回 FALSE。 如打印网格线,返回

19、 TRUE;否则,返回 FALSE。 如表以黑白方式打印,返回 TRUE;否则,返回 FALSE。1 至 3 中的一个数,指明打印时定义图表大小的方式。1 = 屏幕大小2 = 调整到3 = 使用整页 指明重排页命令的数:1 = 先列后行2 = 先行后列 如文件为图表类型 ,返回错误值 #N/A62 扩缩比,未指定时为 100% 。如当前打印机不支持此项操作或文件为图表类型时,返回错误值 #N/A 。63 一个两项水平数组,指明其报表需按比例换算,以适合的页数印出,第一项等于宽度 (如未指明宽度按比例缩放,返回 #N/A) 第二项等于高度 (如未指明高度按比例缩放 ,返回 #N/A) 。如文件为

20、图 表类型,返回 #N/A 。64 行数的数组,相应于手动或自动生成页中断下面的行。只有在满一页的时候才有用。且只计算第一页65 列数的数组。相应于手动或自动生成页中断右边的列。只有在满一页的时候才有用。且只计算第一页附注GET.DOCUMENT(62) 和 GET.DOCUMENT(63) 互相排斥,如果其中一个返回一个数值,另外一个返回错误值 #N/A 。下列 type_num 数值对应不同文件设置。Type_num 返回66 Microsoft Excel for Windows中,如果在选项对话框的转换标签中选择了转换公式项选择框,返回 TRUE;否则,返回 FALSE。67 Micr

21、osoft Excel 5.0 版本下 ,通常返回 TRUE。68 Microsoft Excel 5.0 版本下 ,通常返回簿的文件名。69 如果在选项对话框的查看标志中选择了自动分页线,返回 TRUE;否则,返回 FALSE。70 返回文件中所有数据透视表的文件名。71 返回表示文件中所有类型的水平数组。72 返回表示当前表显示的所有图表类型的水平数组。73 返回表示当前工作表每一个图表中系列数的水平数组。74 返回控制的对象标识符,控制当前执行中的由用户定义的对话框编辑表中获得焦点的控制(以对话框编辑表为基础 )。75 返回对象的对象标识符, 对象正在执行中的由用户定义的对话框编辑表中的

22、默认按枢(以对话框编辑表为基础 )。76 以Book1Sheet1 的形式返回活动表或宏表的文件名。77 以整数的形式返回页的大小 :1=Letter 8.5x11 in2 = Letter Small 8.5 x 11 in5 = Legal 8.5 x 14 in9 = A4 210 x 297 mm10 = A4 Small 210 x 297 mm13 = B5 182 x 257 mm18 = Note 8.5 x 11 in78 返回打印分辨率,为一个二项水平数组。79 如在页面设置对话框的工作表标签中选择按草稿方式选择框返回TRUE;否则,返回 FALSE。80 如在页面设置对话

23、框的工作表标签下选择了附注选择框,返回TRUE;否则,返回 FALSE。81 做为一个单元格的引用,从页面设置对话框的工作表标签返回打印区域。82 做为一个单元格的引用,从页面设置对话框的工作表标签返回打印标题。83 如果工作表为方案而被保护起来,返回 TRUE;否则,返回 FALSE。第 11 页 共 14 页84 返回表中第一个循环引用的值,如无循环引用,返回错误值 #N/A 。85 返回表的高级筛选方式状态。 这种方式顶部设有向下的箭头, 如数据精单通过选择 筛选再从数据菜单选择高级筛选被筛选,返回 TRUE;否则,返回 FALSE。86 返回表的自动筛选方式状态。 这种方式顶部有向下的

24、箭头, 如选择了筛选 ,再从数据菜单选择自动筛选,筛选向下的箭头被显示出来,返回TRUE;否则,返回 FALSE。87 返回指示表的位置的数字,第一张表位置为 1 。计算中包含隐藏起来的表。88 以“ book1 ”的形式返回活动工作簿的文件名。最后 P 个 S:以下是别人写的,有误,拿来学习总结的一,用 VBA ,本 VBA 有问题?结果不对Public Function Page(x As Range, z As Byte)'特别注意:当 Z 参数是 0 时,统计指定单元格所在页的页码(是以列分页符的值是1 为前提条件的)'由自定义函数的 Z 参数来确定是进行工作表选定单元

25、格所在页数 '或是工作表总页数计算'当 Z 参数是 0 时,统计指定单元格所在页的页码'当 Z 参数是 1 至 255 任一个数值时,统计工作表总页数If z = 0 Thenih = 0For Each yh In ActiveSheet.HPageBreaksih = ih + 1If x.Row <= yh.Location.Row ThenPage = ihExit FunctionEnd IfNext yhPage = ih + 1 ' 以上 8 行代码及本行代码,最终得出指定单元格所在页的页码ElsePage = (ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1) '统计工作表总页数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论