ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

新手请教,如何批量修改格式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-5-15 16:33 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

在Word里有中文,有英文。 中英文都是以特定的字符开始,例如中文以“主持人:”开始, 而英文以“M:”或“R:”开始,现在需要将所有的中文删除,并将以“M:”开始的英文段落变成粗体。

我用VBA试了很久也没有弄出来,请各位高手指点!先谢拉!

[em06][em06][em06]

TA的精华主题

TA的得分主题

发表于 2005-5-16 06:16 | 显示全部楼层

欢迎cutedog

我想你把附件发上来,我给你做一下,很方便的,但如果没有附件,实在不利于一次性解决问题,OK?

http://club.excelhome.net/viewthread.php?tid=45649

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-5-16 09:53 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-5-16 09:56 | 显示全部楼层
ksfzOeRP.rar (8.78 KB, 下载次数: 19) 刚才漏掉附件了,这个就是一个样本。

TA的精华主题

TA的得分主题

发表于 2005-5-16 19:35 | 显示全部楼层

象你这个情况,如果是OFFICEXP及以上版本的,可以不用VBA,更好(当然,使用VBA也可以,你先试下来再说)

我们分析一下,你的所有中文段落中的冒号使用的是":",而英文段落中的冒号使用的":",因此,我们可以简单地使用查找与替换功能即可实现.

查找:":"

替换为中点选高级/格式/样式:选一个比如标题9,全部替换,则WORD会将所有":"的段落设置为标题9样式,将光标定位于位置一个标题9段落中,右击,选择格式相同的文本,同WORD会将所有标题9样式的段落全部选中,删除之。

同理,查找"M:"

替换为某一样式,然后定位于该段落中,右击/选择格式相同的文本,则WORD会自动选定格式相同的该文本,然后按下CTRL+B,则会设置为粗体段落的文本.当然,此处的方法多多,你自己体会吧.

如果你实在要求使用VBA实现,也很简单.

能不用,则不用.

TA的精华主题

TA的得分主题

发表于 2005-5-16 22:30 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-5-17 10:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

谢谢版主指教,我的是office2000,而且我经常性的有这样的工作要做,所以还是想用VBA来完成。 还请版主不吝赐教! 多谢!

我的主要困难在于无法准确的找到并选中目标内容。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-5-17 14:19 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-5-17 19:49 | 显示全部楼层

请参:

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-5-17 19:49:17 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Option Explicit Sub Example() Dim i As Paragraph On Error Resume Next '忽略错误 '关闭屏幕更新 Application.ScreenUpdating = False With ActiveDocument '活动文档 For Each i In .Paragraphs '遍历每个段落 '如果有":"则删除该段落 If VBA.InStr(i.Range, ":") > 0 Then i.Range.Delete '如果有"M:"则加粗该段落 ElseIf VBA.InStr(i.Range, "M:") > 0 Then i.Range.Font.Bold = True End If Next End With '恢复屏幕更新 Application.ScreenUpdating = True End Sub '----------------------

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-5-18 19:05 | 显示全部楼层

无言感动ing......

真是太感谢你了,守版主。多谢你的宝贵时间和无私的帮助,这个对我帮助太大了!!!

守版主万岁!

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-14 14:56 , Processed in 0.050216 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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