作者:绿色风
分类:
时间:2022-08-17
浏览:134
楼主 zldccmx |
Q:如何剔除嵌入工作表的WORD对象中文本的英文与中文间的空格? A:在EXCEL中执行下列代码,先以插入对象方式插入WORD对象,然后在此对象中灌入文本,并进行特殊规则的替换操作——剔除非中文与中文之间的空格。
- Sub Zldccmx()
- '撰写:老朽
- '网址:http://www.exceltip.net
- '日期:2010-4-28 00:28:50
- 'VBE 下 工具 引用- MS WORD 11.0 控件
- [A1] = "原始文本影子图片": [I1] = "WORD对象处理之后的效果"
- Dim MyDoc As OLEObject, Cc, C
- Dim DD As New Word.Application
- Dim D_W As Word.Window
- Dim D_C As Word.Document
- Set RegEx = CreateObject("VBSCRIPT.REGEXP") 'RegEx为建立正则表达式
- RegEx.Global = True '设置全局可用
- RegEx.Pattern = "[^\u2581-\uffe5]\s{1,}[\u2581-\uffe5]"
- [I2].Activate
- Set MyDoc = ActiveSheet.OLEObjects.Add(ClassType:="Word.Document.8") '在工作表中插入一个WORD对象
- MyDoc.Verb 1 '激活对象
- Set D_W = MyDoc.Object.ActiveWindow
- '向WORD对象中灌入文本
- D_W.Document.words(1) = "各位看官: 请注意, 请的前面有几个空格,介于半角字符与中文之间,运行之后,半角字符: 与中文之间的[ 空格就消失了!" & vbLf & " 'RegEx[ []为建立正则表达式! " _
- & vbLf & "2 ,d ! e 。 国 人 均知道" & vbLf & " :ExcelTip's 风采”," & vbLf & _
- "看好了,汉字之间的空格并没有剔除哦!"
- [A2].Activate
- MyDoc.CopyPicture xlPrinter
- ActiveSheet.Paste '保存初始文本影子,便于比较
- MyDoc.Verb 1 '重新激活对象
- Set D_C = D_W.ActivePane.Document
- If RegEx.Test(D_C.Range) Then
- Set C = RegEx.Execute(D_C.Range)
- For Each Cc In C
- With D_C.Range.Find
- .Replacement.ClearFormatting
- .Text = Cc
- .Replacement.Text = Replace(Cc, " ", "")
- .Forward = True
- .Wrap = wdFindContinue
- .Format = False
- .MatchCase = False
- .MatchWholeWord = False
- .MatchByte = True
- .MatchWildcards = False
- .MatchSoundsLike = False
- .MatchAllWordForms = False
- .Execute Replace:=wdReplaceAll
- End With
- Next
- End If
- [A2].Activate '离开对象
- Set RegEx = Nothing
- Set MyDoc = Nothing
- Set DD = Nothing
- Set D_C = Nothing
- Set D_W = Nothing
- End Sub
剔除EXCEL中WORD对象中文本的英文与中文间的空格.rar
|
2楼 zldccmx |
在OFFICE 2010 下也能正常运行! |
3楼 纵鹤擒龙水中月 |
谢谢分享 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一