新浪博客

域代码将题注“图一-1”变成“图1-1”

2011-03-23 10:45阅读:
在给题注编号的过程中,常出现“图一-1”(太丑了,原因在于多级编号中把标题1的编号样式设为 一、二、三、 等),如何把题注“图一-1”变成“图1-1”? 可以考虑用域代码解决

一、源起:
1. VBA.IsDate() 在IsDate()函数中,我们可以发现Word似乎可以判断诸如“一九八 一年十月一日”这样的日期数据(VBA.IsDate('一九八一年十月一 日')=True.
2. ASK域中,Word可以根据输入的日期值,转换为日期数据,由此联想到了SET域,结果发现域代码:{ SET myBK '一九一一年一月一日' }{ myBK \@ 'D' }值为“1”,当然,其间我测试了N遍,从年到月到日,最终确定使用日的范围更广一些(极限值为31,通常对于Word写作而言,三十一章(标题)基本适 用了)。
二、StringNumber
也许大家知道,Excel中隐含有一个函数NumberString, 它的功能是将数字转为中文大写数字,当然,也没有直接的逆函数,将中文大写数字转换为小写数字。
很想,将Word中的域代码:{ SET myBK '一九一一年一月{ STYLEREF 1 \s }日' }{ myBK \@ 'D' }命名为StringNumber函数。
三、 题注
Word默认插入带标题样式的题注,其域代码为图 { STYLEREF 1 \s }—{ SEQ 图 \* ARABIC \s 1 },很显然,我们只要将其中{ STYLEREF 1 \s }的替换为{ SET myBK '一九一一年一月{ STYLEREF 1 \s }日' }{ myBK \@ 'D' }即可在中文大写数字的章标题中实现题注引用的常规数字(阿拉伯数字)。
替换方法:
1.
域代码{ SET myBK '一九一一年一月{ STYLEREF 1 \s }日' }{ myBK \@ 'D' }(即我命名的StringNumber函数)复制到剪贴板中;
2. 在正文中,按下 ALT+F9,切换到域代码视图下(域的查找与替换,必须在显示域代码的情况下进行)。
3. 下CTRL+H组合键,打开查找和替换对话框,在替换选项卡中,设置查找内容为“^d STYLEREF 1 \s”,在替换为中输入“^c”,不区分大小写,注意,“^d”后有一个半角空格,全部替换即可。
简化后的域代码为:
{ QUOTE '一九一一年一月{ STYLEREF 1 \s }' \@'D' }{ SEQ \* ARABIC \s 1 }
{ QUOTE '一九一一年一月{ STYLEREF 1 \s }' \@'D' }{ SEQ \* ARABIC \s 1 }
公式 { QUOTE '一九一一年一月{ STYLEREF 1 \s }' \@'D' }{ SEQ 公式 \* ARABIC \s 1 }
注意,'{}'是由Ctrl+F9组合键自动插入的域标志!

我的更多文章

下载客户端阅读体验更佳

APP专享