ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-4-8 06:44 | 显示全部楼层 |阅读模式

很高兴在此与大家分享最新的研究成果,将题注“图一-1”变成“图1-1”。本版早先曾有两个贴子,其中一个是由我写的IF域,另一个是C81版主的http://club.excelhome.net/viewthread.php?tid=266589&replyID=&skin=0贴子,两个贴子都没有从根本上解决中文简写数字自动转为阿拉伯数字的问题。
一、源起:
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”后有一个半角空格,全部替换即可。

IXo0u9xE.rar (76.6 KB, 下载次数: 724)



[此贴子已经被作者于2008-4-8 6:52:31编辑过]

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

ABwr6BPf.rar

45.1 KB, 下载次数: 399

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

wCty0uqy.rar

51.86 KB, 下载次数: 316

[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2008-4-8 23:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

老大的方法真妙!简便实用,且对使用者要求也不是很高。初步还有一种感觉,直接用Quote域而不用变量书签好像也行。

先收藏再慢慢学习与体会!

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-4-9 05:30 | 显示全部楼层
QUOTE:
以下是引用sylun在2008-4-8 23:57:40的发言:

初步还有一种感觉,直接用Quote域而不用变量书签好像也行。

谢谢sylun兄的提醒!

用QUOTE域也行,并且更简单一些。QUOTE域对于单元格地址的引用也行(我以前的贴子),我想对于日期的引用同样应该没有问题!

QUOTE域是个宝!

简化后的域代码为:

注意,"{}"是由Ctrl+F9组合键自动插入的域标志!

域代码: { 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 }

Word中的域代码如下图所示:

9pMiOoZg.rar (77.13 KB, 下载次数: 389)


[此贴子已经被作者于2008-4-9 5:38:27编辑过]
x7pq5Hbo.jpg

TA的精华主题

TA的得分主题

发表于 2008-4-9 13:07 | 显示全部楼层

强!收藏了。建议加精加亮

TA的精华主题

TA的得分主题

发表于 2008-4-9 13:42 | 显示全部楼层

守柔的这个东西的确是个好东西,值得庆贺。不过最值得庆贺的是我们的守柔现在也开始学会变通了哦,开始采用曲线救国了,呵呵。

祝贺你,守柔!

TA的精华主题

TA的得分主题

发表于 2008-4-9 21:54 | 显示全部楼层

老大的这个贴子可能应该是组合了Excel与Word的知识而得出的。思路非常巧妙,学习啦。

顶。

[此贴子已经被作者于2008-4-9 22:05:44编辑过]

TA的精华主题

TA的得分主题

发表于 2008-5-25 13:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-3-21 15:51 | 显示全部楼层
写论文过程中一直解决不了这个问题
Word毕竟不是为中国人设计的
有些地方不符合中文规范
这个问题也是word的一个bug

希望该文有帮助
是否有效我还没试

TA的精华主题

TA的得分主题

发表于 2009-3-21 17:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
太麻烦了
不知道怎么搞好

TA的精华主题

TA的得分主题

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

本版积分规则

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

GMT+8, 2024-11-24 10:33 , Processed in 0.036832 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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