ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 如何引用word中自动编号?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-4-9 16:18 | 显示全部楼层 |阅读模式
有幸拜读了《[原创.春日偶成]域代码将题注“图一-1”变成“图1-1”》(详见下面)的巧妙方法,试了试确实感觉很好,不过,利用此种方法对于图、表及公式中的编号如何在文中自动引用那?




很高兴在此与大家分享最新的研究成果,将题注“图一-1”变成“图1-1”。本版早先曾有两个贴子,其中一个是由我写的IF域,另一个是C81版主的http://club.excelhome.net/viewth ... 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”后有一个半角空格,全部替换即可。

TA的精华主题

TA的得分主题

发表于 2009-4-9 16:27 | 显示全部楼层
和普通的“插入→引用→交叉引用”一样的引用。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-9 16:50 | 显示全部楼层
不行啊,我用的是守柔大师提到的手动方法(详细内容见下),依次点插入→引用→交叉引用找不到可引用的编号?

1.        将StringNumber函数分别改写为三种常用形式,即相当于“图”、“表”、“公式”三种题注标签及其相应域代码。

注意,"{}"是由Ctrl+F9组合键自动插入的域标志!
域代码:图 { SET myBK "一九一一年一月{ STYLEREF 1 \s }日" }{ myBK \@ "D" }—{ SEQ 图 \* ARABIC \s 1 }
表 { SET myBK "一九一一年一月{ STYLEREF 1 \s }日" }{ myBK \@ "D" }—{ SEQ 表 \* ARABIC \s 1 }
公式 { SET myBK "一九一一年一月{ STYLEREF 1 \s }日" }{ myBK \@ "D" }—{ SEQ 公式 \* ARABIC \s 1 }
2.        分别选中三组域代码及其段落标记,设置其样式为“题注”。
3.        按ALT+F3组合键,保存为三个自动图文集,其词条名分别为“图注”,“表注”和“公式注”。
                  
4.        在需要插入题注的位置,直接录入“图注”等,按F3键插入自动图文集(即题注)即可。

TA的精华主题

TA的得分主题

发表于 2009-4-9 18:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 wangyl86 于 2009-4-9 16:50 发表
不行啊,我用的是守柔大师提到的手动方法(详细内容见下),依次点插入→引用→交叉引用找不到可引用的编号?

1.        将StringNumber函数分别改写为三种常用形式,即相当于“图”、“表”、“公式”三种题注标签及其相 ...

我这儿交叉引用好得很嘛~
1.png
2.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-10 08:39 | 显示全部楼层
原帖由 c81 于 2009-4-9 18:55 发表

我这儿交叉引用好得很嘛~

谢谢版主,不过我的还是不行!打开交叉引用,看不到我定义的“图 - ”有劳版主看一下:

[ 本帖最后由 wangyl86 于 2009-4-10 09:04 编辑 ]
Image00001.jpg

TA的精华主题

TA的得分主题

发表于 2009-4-10 09:19 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-10 09:47 | 显示全部楼层
是不是我实现过程有出入?我采用的手动实现过程,具体如下:
第一步,表示出域代码
Image00004.jpg
第二步,依次点击“格式--样式和格式--新样式”定义样式”题注a“
Image00007.jpg
第三步  点“Alt+F3"组合键,建自动图文集”图注“
Image00008.jpg
第四步 依次点”插入--自动图文集--题注a--图注“直接录用
Image00000.jpg

整个实现过程有哪一步我是不是没做到位?请版主及各位朋友指点,谢谢

[ 本帖最后由 wangyl86 于 2009-4-10 10:37 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-10 10:17 | 显示全部楼层
原帖由 c81 于 2009-4-10 09:19 发表
请参考一下

感谢版主,我的手动实现过程也能够实现”守如版主原创中“的图注效果,就是不能交叉引用?真怪!将宏代码复制到Normal.dot或者活动文档中的方法是如何实现的那?把代码复制到一个打开空文档中保存到Normal.dot所在的目录却不能以相同的文件名覆盖之?还有活动文档指的什么呀?如何实现复制到活动文档中哦?

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-10 11:11 | 显示全部楼层
哦,豁然间居然可以了!原来必须在题注中新建”图  “标签,谢谢版主的帮助!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-21 13:06 , Processed in 0.041710 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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