ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 77359|回复: 122

[分享]也谈域在WORD中的应用

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-7-8 07:12 | 显示全部楼层 |阅读模式

1. 域概述

1.1. 域是指Microsoft Word 在文档中自动插入文字、图形、页码和其他资料的一组代码,相当于文档中可能发生变化的数据或邮件合并文档中套用信函、标签中的占位符,例如,DATE 域可用于插入当前日期。

1.2. Microsoft Word 会在您使用一些特定命令时插入域,如“插入”菜单上的“日期和时间”命令。您也可使用“插入”菜单上的“域”命令手动插入域。

1.3. 默认情况下,域有域底纹。

2. 域的构成

因为WORD要判断你的录入或插入是否为域,及域名和域开关是否存在,所以WORD中对域有较为严格的规定。

2.1. 域标志,插入域命令或者使用CTRL+F9,程序自动生成一对花括号,当在嵌套中时,应该注意域标志的对称,就好比引号一样,具有逻辑性,否则将现错。

2.2. 域名:

2.2.1. 取得或者插入合法的域名是关键,使用插入域命令时,在域名比如PAGE域,{ PAGE},所有域名应该在插入域中所有域中存在;这就好比是EXCEL中的函数,你可以手工输入,也可以插入函数来实现;

2.3. 域开关:在域名后面用来实现对域结果进行修饰的指令。通常使用此类开关之后还有进一步的指令。域名与域开关(\)之间应该有至少一个空格占位符。你可以在工具/选项/视图选项卡中格式标记中选中全部,可以方便地看出域中是否有空格。它是一个特殊的指令,在域中可引发特定的操作。例如,在域中插入 \* Caps 开关,可使域结果中所有单词的首字母大写。如果你对EXCEL不陌生的话,则其多数修饰开关相当于设置单元格格式。

2.3.1. 日期-时间图片(\@)域开关

2.3.2. 格式 (\*) 域开关

2.3.3. 锁定结果 (\!)

2.3.4. 数字图片 (\#)

2.3.5. 域代码:= (Formula) 域

2.3.6. 用 IF 域比较文本时所使用的格式开关。

3. 域代码和域结果

3.1. 域代码位于花括号或大括号 ( { } )中,域类似于 Microsoft Excel 中的公式:域代码类似于公式,域结果类似于公式产生的值。可在文档中切换显示域代码及其结果。

3.2. 仅通过键入键盘上的字符无法插入域的花括号。但可使用快捷键 Ctrl+F9 来插入,类似于EXCEL中数组公式的输入:Ctrl+Shift+Enter。

4. 与域有关的操作和快捷方式:

4.1. Ctrl+F9:插入域标志

4.2. ALT+F9:显示或隐藏特定域的代码

4.3. SHIFT+F9:显示或隐藏文档中所有域的域代码

4.4. F9:更新特定的域

4.5. Ctrl+Shift+F9:将域结果转换为常规文本,相当于EXCEL中公式复制/选择性粘贴/数值,不再具有域(或公式)的特征,不能再更新。

4.6. Ctrl+F11:锁定某个域,以防止修改当前的域结果;

4.7. Ctrl+Shift+F11:解除锁定,以允许对该域进行更新。

5. 域的更新:

域的更新,可以手动更新,如F9;也可以在打印前(预览)更新;也可以在再次打开时自动更新,当然也可以在特定事件中(vba)自动更新,比如网友关心地在表格中计算,如何在数据修改后自动更新等。

6. 认识一些简单域:

打开页眉页脚(工具栏),这里的插入自动图文集和中间的页次、页数、日期、时间等十多个命令,其实质也是域的作用。这些域分别是:

页码:{ PAGE }

页数: { NUMPAGES }

日期: { DATE \@ "M/d/yyyy"}

时间: -{ TIME \@ "h:mm am/pm"}

页数: { PAGE }

-创建时间: { CREATEDATE \@ "yyyy-M-d H时m分" }

第{ PAGE }页共{ NUMPAGES }页

机密 第 { PAGE} 页 { DATE \@ "M/d/yyyy"}

上次保存者: { LASTSAVEDBY }

上次打印时间: { PRINTDATE \@ "yyyy-M-d H时m分"}

文件名: { FILENAME }

文件名和路径: { FILENAME \p }

作者: { AUTHOR }

作者第页日期{ AUTHOR }第 { PAGE页} { DATE \@ "yyyy-M-d"}

7. 域的应用范围:

引用:交叉引用、索引和目录、脚注和尾注、题注;

编号;

邮件合并;

文档信息;

文档自动化;

用户信息;

页眉页脚;

自动图文集;

日期和时间;

链接与引用;

公式编辑器;

中文版式;

保护文档(窗体域的应用);

等式与公式(表格)等等。

8. EQ域,是相对常用的一些域,其中部分内容较实用(以下内容摘至帮助):

域代码:Eq(公式)域 { EQ Instructions }

生成数学公式。建议使用“公式编辑器”程序来创建公式。如果没有安装“公式编辑器”或者想要编写行内公式,可使用 EQ 域(域:。)。不能解除 EQ 域的链接。如果双击 EQ 域,Word 将此域转换为嵌入(嵌入:将某程序创建的信息(例如图表或公式)插入其他程序中。嵌入对象后,该信息即成为文档的一部分。对该对象所作的任何更改都将在文档中反应出来。)“公式编辑器”对象。

开关用于指定如何用括号中的元素建立公式。可用适当的开关选项修改开关。

注意

要在公式中使用逗号、单括号或反斜杠,可在这些符号前加反斜杠:\,、\(、\\。

某些开关需要由逗号或分号隔开的元素列表。如果系统中的小数点符号是句号,请将逗号作为分隔符(在 Microsoft Windows “控制面版”中作为“区域设置”的一部分来指定)。如果系统中的小数点符号是逗号,请将分号作为分隔符。

开关

数组开关:\a()

按行顺序将数组元素排列为多列。可用下列选项修改 \a 开关。

\al

列内左对齐。

[此贴子已经被作者于2005-6-30 3:53:46编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-7-8 07:12 | 显示全部楼层
\ac

列内居中对齐。

\ar

列内右对齐。

\con

元素排成 n 列(默认值为 1)。

\vsn

行间增加 n 磅的垂直间距。

\hsn

列间增加 n 磅的水平间距。

括号:\b()

用大小适当的括号括住元素。默认括号为圆括号。可用下列选项修改 \b 开关。

\lc\c

左括号使用字符 c 。

\rc\c

右括号使用字符 c 。

\bc\c

左右括号都使用字符 c 。

如果指定的字符是 { 、[ 、( 、或 <,Word 将使用相应的字符作为右括号。如果指定其他字符,Word 将使用该字符作为相同的左右括号。

位移:\d()

控制 EQ 域之后下一个字符的位置。可用下列选项修改 \d 开关。注意空圆括号只跟在指令最后一个选项后面。

\fon ()

右边 n 磅。

\ban ()

左边 n 磅。

\li ()

为下一个字符前的空白添加下划线。

分数:\f(,)

创建分数,分子分母分别在分数线上下居中。如果系统中使用逗号作为小数点,请用分号 (;) 分隔两个元素。

积分:\i(,,)

使用指定的符号或默认符号及三个元素创建积分。第一个元素是积分下限,第二个是上限,第三个是积分表达式。可以使用下列选项修改 \i 开关。

\su

将符号更改为大写的 ∑ 并生成求和公式。

\pr

将符号更改为大写的 Π 并生成求积公式。

\in

创建行内格式,积分限不在符号的上下,而在符号之右。

\fc\c

将符号设置为固定高度的字符 c。

\vc\c

将符号设置为可变高度的字符 c。符号高度与第三个元素高度一致。

列表:\l()

使用任意个数的元素组成列表,以逗号或分号分隔,这样就可以将多个元素指定为一个元素。

重叠:\o()

将每个后续元素置于前一个元素之上。元素数目不限。元素之间以逗号隔开。

每个字符打印于不可见的字符框中。选项用于对齐各个字符框。可以使用下列选项修改 \o 开关。

\al

左对齐

\ac

居中(默认值)

\ar

右对齐

根号:\r(,)

使用一个或两个元素绘制根号。

上标或下标:\s()

将元素放置为上标或下标字符。每个 \s 代码可有一个或多个元素,以逗号隔开。如果指定多个元素,则元素将堆叠起来并且左对齐。可以使用下列选项将单个元素放于 \s 开关之后。

\ain ()

在段落一行之上添加由 n 指定的磅数的空白。

\upn ()

将单个元素相对相邻文字上移由 n 指定的磅数。默认值为 2 磅。

\din ()

在段落一行之下添加由 n 指定的磅数的空白。

\don ()

将单个元素相对相邻文字下移由 n 指定的磅数。默认值为 2 磅。

框:\x()

创建元素边框。如果不带选项,则此代码在元素四周绘制一个方框。可以使用下列选项来修改 \x 开关。

\to

在元素的上面绘制一个边框。

\bo

在元素的下面绘制一个边框。

\le

在元素的左面绘制一个边框。

\ri

在元素的右面绘制一个边框。

上述EQ域中的部分内容,网友多有提问,比如分式的输入,根号的输入,上划线的输入,上下标的输入等等。

9. 以下部分是对表格中公式的应用的一些基础知识:

如果你对EXCEL不陌生的话,那就很容易理解。EXCEL中表格的是具有行标列号,比如A1单元格,是指A列第一个单元格,或者说是第一行的第一个单元格,只是在合并单元格过程中,EXCEL是从小不从大,比如,A1与B1合并,合并后的单元格地址为:A1;而WORD表格的编号也基本一样,常规表格中以第一列为:A1,A2,A3,A4……,第二列为:B1,B2,B3,B4……;当发生不同列单元格合并时,也是从小不从大,可用以下代码获得单元格列行号。

MsgBox Selection.Information(wdEndOfRangeColumnNumber) & Selection.Information(wdEndOfRangeRowNumber),在不同表格间引用公式或者在非表格中引用表格公式,可以使用书签域加以引用(相当于EXCEL中的定义/名称)。受WORD自身限制,表格中的函数公式只有18个,与EXCEL中是无法相提并论的,并且不能即时更新,因此只适用于在少量公式时(计算),否则推荐使用EXCEL。

10. 在域中的一些直接计算,可以使用如{=2+(3/5)*6}等,可参见链接:http://club.excelhome.net/viewthread.php?tid=47195

11. 有关自动更新公式结果的贴子见该链接:http://club.excelhome.net/viewthread.php?tid=52019

12. 域的一些较为高级的应用,通常可以与宏联合起来(参见该链接http://club.excelhome.net/viewthread.php?tid=51056&replyID=224384&skin=1);也可以通过IF域进行判断,以及域在邮件合并方面的应用。

以前论坛关于域中日期运算的贴子,多有未果,经反复测试,应当可行,在此作一了断,以正视听。(http://club.excelhome.net/viewthread.php?tid=42275;

比如,对于一些当年的简单报表,要求是二月份时显示为一月份,六月份显示为五月份,可以使用以下域:{={date \@"M"}-1},如果加上判断条件,假如是一月份,则显示为12月份(相当于去年),否则则上月份,可以使用以下域:

{ quote {if {date \@"M" } =1 "12" "{ ={date\@"M" }-1 } "}}

13. 综上所述,域在WORD中起到了类似函数的作用,其中的一些规定再作一下归纳:域名不论大小写,域名与开关之间要有空格,比较运算符前后要有空格,域中的分隔符等同函数,VBA中一样,需要用英文半角字符,如(),"";:等等。我想,由于域相对不如函数好记,当我们觉得可以用一种不变的方式(就象编程中的变量名一样,DIM)来引用其中具有一定特征的变量时,就应该想到域,使用域。

14. 笔者水平有限,有些情节是总结出来的,难免不恰当,当谅解。部分章节内容可参见帮助/目录/域类型与开关/域参考。

相关部分链接:

http://club.excelhome.net/viewthread.php?tid=41729

http://club.excelhome.net/viewthread.php?tid=49739&replyID=217227&skin=1

http://club.excelhome.net/viewthread.php?tid=21570&replyID=45994&skin=1

http://club.excelhome.net/viewthread.php?tid=83863

[此贴子已经被作者于2005-3-14 5:25:13编辑过]

TA的精华主题

TA的得分主题

发表于 2004-7-8 08:52 | 显示全部楼层
    太棒了,攻下域的条件基本成熟了。   谢谢斑竹,加精吧,但不要置顶,呵呵。

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-7-15 05:37 | 显示全部楼层
在附件中操作更为方便: 3suQkyt1.rar (4.41 KB, 下载次数: 919)

以下为主要描述:

更正一点,WORD文档打开时不进行域的更新。

以下将重点谈一下MacroButton域的应用

通过MACROBUTTON域的应用,使运行宏和指定宏成为相当简便的操作,这对于部分初学者和VBA新手而言,是件十分爽的事情。

MACROBUTTON域是由{ MACROBUTTON MacroName DisplayText }构成

说明:

插入宏命令,双击 MACROBUTTON 域结果就可运行该宏。也可单击 MACROBUTTON 域,然后按 Alt+Shift+F9。

MacroName

双击域结果时运行的宏名。该宏必须在活动文档模板或共用模板中可用。

DisplayText

显示为“按钮”的文字或图形。可使用结果为文字或图形的域,如 BOOKMARK 或 INCLUDEPICTURE。域结果中文字或图形必须在一行中,否则会导致出错。

那么,WORD中有哪些命令呢,可以使用插入域,选中MACROBUTTON后,在右侧下拉列表框中看到所有WORD命令,此命令对应于工具/自定义/命令中的“所有命令”,以及宏/运行宏/宏位置/WORD命令中,那么,如果取得这些命令的名称以及部分快捷键呢?WORD为我们提供了一个名为“listcommands"命令,请双击此处即可打印全部WORD命令(你也可以输入{macrobutton listcommands printwordallcommands}域)后双击该域(共约1042个命令)

注意,在MACROBUTTON域中,命令单词间的空格必需删除,否则无效。

比如:fileopen:为打开文件对话框.{macrobutton fileopen openfile}

filesaveas 为另存为对话框{ macrobutton filesaveas saveas}

filecloseorexit为退出程序,未保存前出现提示对话框{ macrobutton filecloseorexit exitWord}

但在WORD打印出来的命令中,此命令为File Close Or Exit(其它部分类似,中间有空格),要注意。

最主要一点,WORD中对于调用自身命令从来不讳疾忌医,无论宏安全设置。请看这篇文章:http://club.excelhome.net/viewthread.php?tid=53395

关于MacroButton等域的单击或者双击行为的控制,可以使用以下代码:

Options.ButtonFieldClicks = 1'2(1为单击,2为双击,默认为双击)

2005-3-14 补充几点:

由于域与函数尽管相似,但应用过程中,对于及时更新方面,还存在一些不尽如人意的地方。以下是我在WORD XP版本中,长期同域接触后的一些更新能力的评估,供参考:

在WORDXP版本中关于域的更新能力实际测评:

打印>ActiveDocument.Fields.Update(For Each i In ActiveDocument.Fields:i.Update:Next)>预览>更新域(切换域代码)

也就是打印是最彻底的更新域方式!其次是使用代码,然后是预临览,然后是右键或者快捷键的更新方式。(有时后几种需要多次运行命令,限于文档大小,不可能全部都进行打印更新)

如果您对域有兴趣 ,建议下载以下链接中的第五楼,它可以方便地将主文档中的域直接以域代码的方式粘贴于网页中,也可以直接将帮助文件中或者网页中由域代码复制器生成的变形域代码直接回复成WORD域代码。

http://club.excelhome.net/viewthread.php?tid=83863

域代码复制器(变形域代码)/变形域代码回复器

[此贴子已经被作者于2005-3-14 5:24:01编辑过]

TA的精华主题

TA的得分主题

发表于 2004-7-15 22:39 | 显示全部楼层
我得花些时间来消化,坦白地说,我用WPS的次数比Word多,只是对Office的VBA感兴趣,改投Word,且大部分时间用在Excel上,Word但还很不熟,多向各位学习。

TA的精华主题

TA的得分主题

发表于 2004-7-19 15:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  前面已经提到,可以加精,但不宜置顶。为什么,因为这个问题对大多数用户来讲太深了。   加精,便于大家查找,而且这个帖子内容也够得上精了。现在置顶了,点击率比较低,更证实了我的预测。

TA的精华主题

TA的得分主题

发表于 2004-7-20 22:11 | 显示全部楼层

谢谢版主!

这正是我想要的东东,找了很久了。

好久未到论坛来了,看来以后真的要常来看看。

TA的精华主题

TA的得分主题

发表于 2004-7-21 00:12 | 显示全部楼层
虽然我目前对Word“域”这东西一点也不懂,但我肯定这一定很有用。所以先收藏了,以后再慢慢研究。谢谢!

TA的精华主题

TA的得分主题

发表于 2004-7-21 19:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

请问斑竹,域的结果如何显示?即如果当前日期为“2004-7-21”。域日期: { DATE \@ "M/d/yyyy"}如何显示结果?

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-7-22 09:25 | 显示全部楼层
选中该域或光标位于该域中时右击更新域,或者按下F9,或者按下SHIFT+F9等等上面有详细讲述的请楼主认真看过.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-15 16:43 , Processed in 0.039599 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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