ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 晦涩的Quote域

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-12-13 22:47 | 显示全部楼层 |阅读模式
在word的9类70多个域中,多数都比较好理解,即便是有些比较难,但通过帮助文件还是可以理解六七成的。而对于帮助文件说的很具体的域就更加容易操作了。比如EQ域,很强大,网络帮助文件很全。只要照着做,完全可以出效果。再如TOC域,TOA、TC、TA等几个域,其开关是否打开可出现不同的效果,而网络上可获取的帮助就比较有限了。但即便如此,还是可以自己去测试出一些效果的。
然而,对我而言,最最晦涩的就是这个quote域。如下是帮助文件的所有内容:
域代码:Quote 域
{ QUOTE "LiteralText" }
将指定文字插入文档。
说明
"LiteralText"
插入的文字(必须用引号括起来)。可包含除 AUTONUM,AUTONUMLGL,AUTONUMOUT 或 SYMBOL 外任何域。
示例
下面嵌套有 IF、=(FORMULAR) 和 DATE 域的 QUOTE 域可以产生上个月的名称。例如,如果现在是二月,一月就是域结果。该示例可用于事后的报告(如,销售报告)。
{ QUOTE { IF { DATE \@ "M" } = 1 "12" " {= { DATE \@ "M" } -1 } " }/1/03 \@ "MMMM" }
定义就这么一句简单的话:将指定文字插入文档。
那么,何为指定文字?下面的例子就很奇怪了。直接看去,很难看出quote在此的含义。
后来越发发现quote域的强大,尤其在表格计算中,日期计算中,必不可少,可搜索有关sylun和守柔的帖子,很多高深的域代码中,都少不了两个域,一个是set,另一个就是quote。虽然见过很多例子,但是始终不理解其含义。曾在百度搜索良久,但收获甚少,根本找不到详细的介绍。基本都是抄袭帮助中的一句话和例子。虽有高手应用,但却无关于quote的详解。
或许厚积薄发吧,最近再次仔细思索,终于有所获。现将自己的感悟写下,或许有不对之处,看帖者若有更好的理解和例子,欢迎共同跟帖讨论,共同学习。
其实quote想通了很简单:就是引用,引用什么?地址和文字。
地址和文字是什么?其实想通这个问题就能理解quote域了。比如上海,我们看到后马上会想到繁华的大都市,这就是上海。但是对于一个从未听过上海的人而言,在他眼里,无非就是两个字:上、海。按他的理解,可能就是上到海里去。所以,从字面看,上海就是两个汉字。没别的含义。那么如何让其成为大都市的地址?那么就需要quote了。加了quote后就是代表上海这个繁华的都市。
懂得统配符和vba的人肯定知道chr(13)的含义。代表回车符。但是你能在查找替换框中输入chr(13)来查找回车吗?肯定不行。因为在word查找替换框中,所有输入的都是没有任何引申含义的原始字符。所以,你可以查找到chr(13),但是却查找不到回车符。然而在vba代码中却可以通过selection.find.text=chr(13)来达到目的。因此,这里也是同样的意思。
再说下表格中的引用。如引用B1表格中的值,假如值为7,那么你在其他单元格中输入域代码{=B1},F9,可看到7值出现。因为这个B1是个整体,代表B1单元格。然而,若是写成动态的情况:{=B{seq aa}}的话,却会提示错误。因为虽然seq aa也能生成1,但是确实B和1,二者没有一体。只是代表两个独立的字符。那么如何让B和1转成B1这个地址呢?答案就是quote域,加上quote域:{ ={ quote A{ seq aa } } }即可。能理解这个,复杂的运算也就好理解了。
再入这个:{quote 65},结果猜猜看?答案:A。因为65在quote的作用下,已不再是6和5的组合,而是变成了一个整体:65,而这个整体在ascii码中对应A。可理解为65对应的就是A的地址。可以修改65为其他数字看看,不少和symbol域是相同的。
好了,可以去解释帮助中的例子了:quote日期,日期不加quote的话,只是代表几个没有意义的汉字。加上quote就是代表有含义的真正的日期。
{ quote "一九三七年十二月十三日"  \@ "D" }显示为13,quote将一九三七年十二月十三日这几个无意义的汉字转变为了真正意义的日期,所以能进行D的转换。否则会被当做书签,而文档中不存在名为"一九三七年十二月十三日"的书签时,就会提示错误!未定义书签。的字样。
以上为本人的拙见,如有纰漏之处,欢迎补充修正……^-^



评分

4

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-12-26 09:45 | 显示全部楼层
楼主一直孜孜不倦地提高水平

TA的精华主题

TA的得分主题

发表于 2015-1-11 19:27 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-8-27 17:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-12-5 17:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
相当于excel中的INDIRECT?

TA的精华主题

TA的得分主题

发表于 2019-1-21 12:36 | 显示全部楼层
QUOTE域还有一个作用,将域语句放到QUOTE域中,域代码可换行,增强可读性,不影响文档输出结果。

TA的精华主题

TA的得分主题

发表于 2019-7-2 16:52 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-7-3 21:15 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-26 23:08 , Processed in 0.034080 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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