加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]域代码将题注“图一-1”变成“图1-1”

(2015-12-11 09:30:51)
标签:

转载

分类: office

在给题注编号的过程中,常出现“图一-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组合键自动插入的域标志!

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有