ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: Emily

[原创] 利用 Get.Document 讀取 頁數

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-5-15 11:15 | 显示全部楼层
本帖已被收录到知识树中,索引项:GET.DOCUMENT
非常感谢提供!

TA的精华主题

TA的得分主题

发表于 2009-6-20 14:07 | 显示全部楼层
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 如果在 Options 对话框的[重新计算设置]标签下选择[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。
34 如工作簿定义为只读,返回TRUE;否则,返回FALSE。
35 工作簿为写保护,返回TRUE;否则,返回FALSE。?
36 如文件设置了写保护口令,并以可读/可写方式打开,返回最初使用写保护口令存文件的用户的名字。如文件以只读形式打开,或文件未设置口令,返回当前用户的名字。
37  对应于显示在[另存为]对话框中的文档的文件类型。所有  Microsoft Excel 可识别的文件类型列于SAVE.AS函数中。

38  如选择了[分级显示]对话框中的[明细数据的下方选择框,返回TRUE;否则,返回FALSE。
39 如果选择了[分级显示]对话框中的[明细数据的右侧]选择框,返回TRUE;否则,返回FALSE。
40 如果选择了[另存为]对话框中的[建立备份文件]选择框,返回TRUE;否则,返回FALSE。
41 1至3中的一个数字,指明是否显示对象: 1 = 显示所有对象 2 = 图和表的位置标志符 3 = 所有对象被隐藏

42 包括表中所有对象的水平数组,如无对象,返回错误值 #N/A?
43 如果在[选项]对话框的[重新计算设置]标签下选择了[保存外部链接值]选择框,返回TRUE;否则,返回FALSE。
44 如文件中的对象被保护,返回TRUE;否则,返回FALSE。
45 0至3中的一个数,指明窗口同步化方式。 0 = 不同步 1 = 水平方向上同步 2 = 垂直方向上同步 3 = 水平方向,垂直方向上均同步
46 七项水平数组,用于打印设置,可由 LINE. PRINT 宏函数完成。

47 如果在[选项]对话框的[转换]标签中选择了[转换表达式求值]选择框,返回TRUE;否则,返回FALSE。
48 标准栏宽度设置

下列 type_num 值对应于打印与页的设置。

Type_num 返回

49 开始页的页码,如未指明或在[页面设置]对话框的[页]标签下的[起始页号]文字框输入了“自动”,返回错误值#N/A?
50 当前设置下欲打印的总页数,其中包括注释,如果文件为图表,值为1
51 如只打印注释时的总页数。如文件为图表类型,返回错误值 #N/A?
52 在当前指定的单位中,指明边距设置(左,右,顶,底)的四项水平数组。
53 指明方向的数字: 1 = 纵向 2 = 横向
54 文本串的页眉,包括格式化代码。

55 文本串的脚注,包括格式化代码。
56 包括两个逻辑值的水平数组,对应于水平垂直方向置中。
57 如打印行或列的上标题,返回TRUE;否则,返回FALSE。
58 如打印网格线,返回TRUE;否则,返回FALSE。?
59 如表以黑白方式打印,返回TRUE;否则,返回FALSE。
60 1至3中的一个数,指明打印时定义图表大小的方式。 1 = 屏幕大小 2 = 调整到 3 = 使用整页
61 指明重排页命令的数: 1 = 先列后行 2 = 先行后列 如文件为图表类型,返回错误值#N/A?

62 扩缩比,未指定时为100%。如当前打印机不支持此项操作或文件为图表类型时,返回错误值#N/A。?
63 一个两项水平数组,指明其报表需按比例换算,以适合的页数印出 ,第一项等于宽度(如未指明宽度按比例缩放,返回#N/A)第二项等于高度(如未指明高度按比例缩放,返回#N/A)。如文件为图表类型,返回#N/A?
64 行数的数组,相应于手动或自动生成页中断下面的行。
65  列数的数组。相应于手动或自动生成的页中断右边的列。

附注 GET.DOCUMENT(62)和GET.DOCUMENT(63)互相排斥,如果其中一个返回一个数值,另外一个返回错误值#N/A。

下列type_num数值对应不同文件设置。?

Type_num 返回

66 Microsoft Excel for  Windows 中,如果在[选项]对话框的[转换]标签中选择了[转换公式项]选择框,返回TRUE;否则,返回FALSE。
67 Microsoft Excel 5.0版本下,通常返回TRUE。?
68 Microsoft Excel 5.0版本下,通常返回簿的文件名。
69 如果在[选项]对话框的[查看]标志中选择了[自动分页线],返回TRUE;
否则,返回FALSE。
70 返回文件中所有数据透视表的文件名
71  返回表示文件中所有类型的水平数组。

72 返回表示当前表显示的所有图表类型的水平数组。
73 返回表示当前工作表每一个图表中系列数的水平数组。
74 返回控制的对象标识符,控制当前执行中的由用户定义的对话框编辑表中获得焦点的控制(以对话框编辑表为基础)。
75  返回对象的对象标识符,对象正在执行中的由用户定义的对话框编辑表中的默认按枢(以对话框编辑表为基础)。
76 以[Book1]sheel的形式返回活动表或宏表的文件名。?
77  以整数的形式返回页的大小:  

1=Letter 8.5x11 in?
2 = Letter Small 8.5 x 11 in 5 = Legal 8.5 x 14 in 9 = A4 210 x 297 mm 10 = A4 Small 210 x 297 mm 13 = B5 182 x 257 mm 18 = Note 8.5 x 11 in
78  返回打印分辨率,为一个二项水平数组。
79 如在[页面设置]对话框的[工作表]标签中选择[草稿质量]选择框返回
TRUE;否则,返回FALSE。
80 如在[页面设置]对话框的[工作表]标签下选择了[附注]选择框,返回
TRUE;否则,返回FALSE。

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

86 返回表的自动筛选方式状态。这种方式顶部有向下的箭头,如选择了[筛选],
再从[数据]菜单选择[自动筛选],筛选向下的箭头被显示出来,返回TRUE;否则,返回FALSE。
87 返回指示表的位置的数字,第一张表位置为1。计算中包含隐藏起来的表。
88 以“book1”的形式返回活动工作簿的文件名。

Name_text      文件的文件名,如name_text被省略,FALSE定为活动文件。

TA的精华主题

TA的得分主题

发表于 2009-8-19 20:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-11-10 03:59 | 显示全部楼层

!测试发现个问题!

当excl的页面是按列来的当前页码就不对了。

TA的精华主题

TA的得分主题

发表于 2010-1-8 11:25 | 显示全部楼层

请高手继续。。。

按照插入名称的做法,小弟偷到师了。慢也不是问题。
小弟做法
1. 首先:点CTRL+F3打开定义名称,再在上面输入“纵当页”,在下面引用位置处输入:
  =IF(ISNA(MATCH(ROW(),GET.DOCUMENT(64))),1,MATCH(ROW(),GET.DOCUMENT(64))+1)  
  2.然后再继续添加第二个名称:“横当页”,在下面引用位置处输入:
  =IF(ISNA(MATCH(column(),GET.DOCUMENT(65))),1,MATCH(column(),GET.DOCUMENT(65))+1)
      3.再输入“总页”;引用位置处输入:
  =GET.DOCUMENT(50)+RAND()*0  
最后4

   ="第"&IF(横当页=1,纵当页,横当页+纵当页)&"页/共"&总页&"页"
插入到cells(5,1)吧。。

但是如果把cells(5,1)设置打印标题,【这正是小弟的需要】,第二页开始【当前页】就不会变化。

[ 本帖最后由 xwinglong 于 2010-1-8 11:26 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-5-12 00:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 qqask 于 2005-5-18 01:22 发表
这方法不错,但是只能竖着排页码,横着的话就会乱。


现在有了完美解决方案了:
http://club.excelhome.net/viewth ... 28670&page=1&extra=

不论打印顺序是“先列后行”还是上“先行后列”,都不会算错页码!

[ 本帖最后由 cbtaja 于 2010-5-23 19:58 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-3-10 13:09 | 显示全部楼层
原帖由 xwinglong 于 2010-1-8 11:25 发表
按照插入名称的做法,小弟偷到师了。慢也不是问题。
小弟做法
1. 首先:点CTRL+F3打开定义名称,再在上面输入“纵当页”,在下面引用位置处输入:
  =IF(ISNA(MATCH(ROW(),GET.DOCUMENT(64))),1,MATCH(ROW(),G ...


但是如果把cells(5,1)设置打印标题,【这正是小弟的需要】,第二页开始【当前页】就不会变化。
这个问题没办法解决啊!

TA的精华主题

TA的得分主题

发表于 2011-4-7 13:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看不太明白,这论坛太猛

TA的精华主题

TA的得分主题

发表于 2011-8-4 00:09 | 显示全部楼层
感谢费心,这是为EXCEL打的补丁,大家都会用到,真不错

TA的精华主题

TA的得分主题

发表于 2011-11-3 18:06 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-28 19:02 , Processed in 0.060196 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表