ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E文精选 > Word > 没有excel,Word也可以(三)批量替换日期

没有excel,Word也可以(三)批量替换日期

作者:绿色风 分类: 时间:2022-08-17 浏览:280
楼主
い卋玑┾宝珼
要求:仅用Word,在word中实现将错误的日期格式批量转换为中文日期。
这是EH一个精华帖的内容,尊重原作者,把链接帖上
http://club.excelhome.net/thread-485899-1-1.html
是小月在09年出的一道题目,闲来无事,就思考一下,如果仅用Word能否实现这一点。当然,仅用Word会很麻烦,这并不是最优解,但是,可以很好在认识到Word的强大,开拓思路。
源文档:

 
第一步:为了让文章可以还原回去,先将换行符替换成文章中没有出现的任意字符。
此处,勾选通配符匹配,将^p替换成$

 
第二步,勾选使用通配符,将([0-9]{4})?([0-9]{1,})?([0-9]{1,})替换为^t\1-\2-\3^t^p
这里,既为了文本转表格的格式,为了了将日期统一格式
()是分段,一个()就表示一段,具体,可以自行搜索查找和替换的具体用法。()里是匹配数字,?是匹配一个字符,这样所有的日期都匹配上了。

 
第三步:将月变成两位(为了朝最终将日期变成8位数字前进)
勾选使用通配符,将\-([0-9]\-)替换为0\1

 
第四步:把日替换成两位数字,勾选使用通配符,将\-([0-9]^t)替换为0\1

 
第五步,将多余的“-”替换掉,这里可能有人问,我原本就有“-”不是也没了么,那就选择一个,文章里没有出现的分隔符进行替换即可。直接把前面提到的“-”全部换成文章中没有的那个分隔符就好了。
第六步,全选文本,进行文本转表格

 
记住,这里一定要选择制表符。
此时变成这样的效果:

 
第七步,插入域,转化为中文日期,里面的内容是{if { =sum(left) } = 0 "" { quote { =SUM(LEFT) \# "0000'-'00'-'00" }  \@ "EEEE年O月A日" } },记住大括号是用Ctrl+F9插入的哦。

 
插入上面的域,来解释一下,用sum(left),可以获取左边的数字,用\#可以设置数字显示的格式,设置成用“-”连接之后,系统就会认为是日期,这时候,用quote域,将其格式设置为大写的日期。外面的if,则是因为左边的列有些是空的,所以当空的时候,应该显示为空。
第八步,将这一单元格的内容复制,然后粘贴到整个列。效果如图。

 
按Alt+F9,切换显示状态,全选,按F9刷新。效果如下图。

 
第九步,全选,按ctrl+shift+F9,将域切换成静态文本
第十步,将第二列删除。
第十一步,将表格转换成文本

 
第十二步,将所有的段落标记替换掉,不勾选匹配通配符,^p替换为空
第十三步,将之前保存的段落标记替换回去,还原格式,不勾选匹配通配符,将$替换为^p
最后的成果。

 
原文档中还有首行缩进,设置一下就好了。
完工,Word是不是很强大。
再次感谢天宇。

不要纠结这样太麻烦,因为这只是一种完成任务的思路。

附件:

乱七八糟的文字.zip



此系列为三帖,为进阶型:
Word表格转置

仅用word的功能,实现表格的转置
批量添加等级

仅用Word的功能,实现分数等级评定的批量添加
批量替换日期

仅用word的功能,将文章中的日期实现批量的替换
2楼
李欣Nina
多多要死了
3楼
心痛神伤
学习
4楼
峦青
学习了,不会的有点多,努力。
5楼
liuxy881102
天啦。。怎么word 比excel复杂这么多

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap