在Excel工作表的任意单元格中设置页码

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

★Excel服务器学习和下载园地★

[分享] 在Excel工作表的任意单元格中设置页码[复制链接]

文章不当之处,请Excel VBA高手指教为谢!

转载于一片白云博客:/ycy_sdfc/

问:在Excel中设置第几页共几页,绝大部分人会想道用“页面设置”,但你是否想过将“第N页/总M页”放到任意单元格中?而不仅仅是置于页眉页脚中?

答:实现方法一般有两种:使用VBA和使用宏表函数

方法一,用VBA

Public Function Page(x As Range, z As Byte)

'特别注意:当Z参数是0时,统计指定单元格所在页的页码(是以列分页符的值是1为前提条件的)

'由自定义函数的Z参数来确定是进行工作表选定单元格所在页数

'或是工作表总页数计算

'当Z参数是0时,统计指定单元格所在页的页码

'当Z参数是1至255任一个数值时,统计工作表总页数

If z = 0 Then

ih = 0

For Each yh In ActiveSheet.HPageBreaks

ih = ih + 1

If x.Row <= yh.Location.Row Then

Page = ih

Exit Function

End If

Next yh

Page = ih + 1 '以上8行代码及本行代码,最终得出指定单元格所在页的页码

Else

Page = (ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1) '统计工作表总页数

End If

Application.V olatile '本代码将此自定义函数标识为易失性函数,对自定义函数进行重算End Function

举例1:我们要A1单元格中得出“当前工作表指定的单元格(A100)所在页数”是多少页?=page(a100,0)

举例2:我们要A1单元格中得出“当前工作表总页数”是多少页?

=page(a100,1)

这里的公式中,单元格引用(A100)可以是任意单元格引用(公式所在单元格除外,否则会出现循环引用,出现错误);Z参数可以是1至255之间的任意值。

方法二,用宏表函数与公式

1. 首先:使用快捷键CTRL+F3打开定义名称,再在上面输入“纵当页”,在下面引用位置处输入:=IF(ISNA(MA TCH(ROW(),GET.DOCUMENT(64))),1,MATCH(ROW(),GET.DOCUMENT(64)) +1)

2. 然后再继续添加第二个名称:“横当页”,在下面引用位置处输入:

=IF(ISNA(MA TCH(column(),GET.DOCUMENT(65))),1,MATCH(column(),GET.DOCUMENT( 65))+1)

3. 再输入“总页”;引用位置处输入:=GET.DOCUMENT(50)+RAND()*0

4. 最后再定义“页眉”,引用位置:="第"&IF(横当页=1,纵当页,横当页+纵当页)&"页/共"&总页&"页"

5. 在函数栏使用应用即可得到需要的页码

★关于方法二用到的宏函数知识补充:

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 指明文件类型的数

1 = 工作表

2 = 图表

3 = 宏表

4 = 活动的信息窗口

5 = 保留文件

6 = 模块表

7 = 对话框编辑表

4 如果最后一次存储文件后表发生了变化,返回TRUE;否则,返回FALSE。

5 如果表为只读,返回TRUE;否则,返回FALSE。

6 如果表设置了口令加以保护,返回TRUE;否则,返回FALSE。

7 如果表中的单元格,表中的内容或图表中的系列被保护,返回TRUE;否则,返回FALSE。

8 如果工作簿窗口被保护,返回TRUE;否则,返回FALSE。

下面四个type_num的数值只用于图表。

Type_num 返回

9 指示主图表的类型的数。

1 = 面积图

2 = 条形图

3 = 柱形图

4 = 折线形

5 = 饼形

6 = XY (散点图)

7 = 三维面积图

8 = 三维柱形图

9 = 三维折线图

10 = 三维饼图

11 = 雷达图

12 = 三维等形图

13 = 三维曲面图

14 = 圆环图

10 指示覆盖图表类型的数,同以上主图表的1,2,3,4,5,6,11和14。没有覆盖图表的情况下返回错误值#N/A

11 主图表系列的数

12 覆盖图表系列的数

下列Type_num 的值用于工作表,宏表,在适当的时候用于图表。

Type_num 返回

9 第一个使用行的编号。如文件是空的,返回零。

10 最后一个使用行的偏号。如文件是空的,返回零。

11 第一个使用列的编号。如文件是空的,返回零。

12 最后一个使用列的编号。如文件是空的,返回零。

13 窗口的编号。

14 指明计算方式的数。

1 = 自动生成有

2 = 除表格外自动生成

3 = 手动

15 如果在[选项]对话框的[重新计算]标签下选择[迭代计算]选择框,返回TRUE;否则,返回FALSE。

16 最多迭代次数。

17 迭代计算最大误差。

18 如果在[选项]对话框的[重新计算]标签下选择[更新远程引用]选择框,返回TRUE;否则,返回

FALSE。

19 如果在[选项]对话框的[重新计算]标签下选择[以显示精度为准]选择框,返回TRUE;否则,返回

FALSE。

20 如果在[选项]对话框的[重新计算]标签下选择[1904年日期系统]选择框,返回TRUE;否则,返回

FALSE。

Type_num 是21-29之间的数,对应于Microsoft Excel先前版本的四种默认字体。提供这些值是为了宏的兼容性。

下列Type_num 数值应用于工作表,宏表和指定的图表。

Type_num 返回

30 以文字形式返回当前表合并引用的水平数组。如果列表是空的,返回错误值#N/A。

31 1至11之间的一个数,指明用于当前合并的函数。对应于每个数的函数列于下面CONSOLIDATE函数中,默认函数为SUM。

32 三项水平数组,用于指明Data Consolidate对话框中选择框的状态。如果此项为TRUE,选择选择框;如果此项为FALSE,清除选择框. 第一项指明[顶端行]选择框,第二项指[最左列]选择框,第三项指[与源数据链接]选择框。

33 如果选择了[选项]对话框的[重新计算]标签下的[保存前自动重算]选择框,返回TRUE;否则,返回FALSE。

相关文档
最新文档