ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

一个关于替换的话题,请帮助解决

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-12-16 10:03 | 显示全部楼层 |阅读模式
OAzOgP3d.rar (4.34 KB, 下载次数: 21) 就是把字母或数字及其后面的汉字全面删除。例如“暗装开关250V/5A 二位”,我只想保留“暗装开关”,“抽油杆变扣(6/8x7/8)双公”,只保留“抽油杆变扣”。请问大家如何替换。谢谢!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-16 10:40 | 显示全部楼层
请大家出出主意吧,有几千行呢。急呀!!

TA的精华主题

TA的得分主题

发表于 2005-12-16 10:57 | 显示全部楼层
按如下试试(另勾选"使用通配符")
[此贴子已经被作者于2005-12-16 10:57:47编辑过]

一个关于替换的话题,请帮助解决

一个关于替换的话题,请帮助解决

TA的精华主题

TA的得分主题

发表于 2005-12-16 11:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一步到位的方法,我目前暂时想不出。 CTRL+A,CTRL+H,勾选通配符: 查找:"([一-龥]@)[^1-^127]?@",替换为"\1",格式为加粗,全部替换 第二步,查找,不勾选通配符 查找:"",即什么也不要输入,格式为非加粗(可在光标位于查找框中时按下CTRL+B多次) 替换:"",即什么也不要输入,注意,单击不限定格式,其目的是将非加粗字符删除(替换为""),全部替换 第三:CTRL+B,还原为正常字体. 其它方法还有很多,如先转换和VBA等.

一个关于替换的话题,请帮助解决

一个关于替换的话题,请帮助解决

一个关于替换的话题,请帮助解决

一个关于替换的话题,请帮助解决

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-16 14:29 | 显示全部楼层
请守柔版主解释一下,([一-龥]@)是什么意思,[ ]方括号是干什么用的,还有@,代表什么涵义。头都大了,一头雾水。谢谢守柔版主。

TA的精华主题

TA的得分主题

发表于 2005-12-16 18:23 | 显示全部楼层

我来说一句:

罗马不是一天做的!

同样,这不是一句话能说清楚的。还是搜索一下这方面的贴子吧。

TA的精华主题

TA的得分主题

发表于 2005-12-18 13:31 | 显示全部楼层

如果只是要提取内容的话,也可以使用VBScript中的正则表达式的强大搜索替换功能,上午研究了正则表达式,试写代码如下:

Sub replStr()
Dim regEx As Object ' 建立变量
Set regEx = CreateObject("vbScript.RegExp") ' 建立正则表达式
Application.ScreenUpdating = False
With ActiveDocument
regEx.Global = True
regEx.Pattern = "[\x0f-\x7f].*?\r" ' 要找的内容
.Content = regEx.Replace(.Content, "") '找到的内容替换为空
regEx.Pattern = "\r{2,}" ' 找2个以上连续的段落标记
.Content = regEx.Replace(.Content, vbCr) ' 2个以上连续的段落标记替换为1个
End With
Set regEx = Nothing
Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

发表于 2005-12-18 13:49 | 显示全部楼层

增加2行代码,删除连续重复的行:

Sub replStr()
Dim regEx As Object ' 建立变量
Set regEx = CreateObject("vbScript.RegExp") ' 建立正则表达式
Application.ScreenUpdating = False
With ActiveDocument
regEx.Global = True
regEx.Pattern = "[\x0f-\x7f].*?\r" ' 设置要找的内容
.Content = regEx.Replace(.Content, "")
regEx.Pattern = "\r{2,}" ' 2个以上连续的段落标记
.Content = regEx.Replace(.Content, vbCr) ' 2个以上连续的段落标记替换为1个
regEx.Pattern = "(.+\r)\1+" '找连续出现相同的行
.Content = regEx.Replace(.Content, "$1") '替换后没有重复的行
End With
Set regEx = Nothing
Application.ScreenUpdating = True
End Sub

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

本版积分规则

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

GMT+8, 2024-11-16 02:49 , Processed in 0.042625 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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