如果只想选中一段红色文字段落(用VBA)行不?
时间:2006-12-30
来源:互联网
[此贴子已经被作者于2006-12-30 14:33:13编辑过]
作者: chuhaiou 发布时间: 2006-12-30
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
End Sub
作者: poetbox 发布时间: 2006-12-30
Dim p As Paragraph
For Each p In ActiveDocument.Paragraphs
If p.Range.Font.Color = wdColorRed Then Exit For
Next
p.Range.Select
End Sub
作者: northwolves 发布时间: 2006-12-30
请参考:
Sub ParSel()
Dim myRange As Range
Set myRange = ActiveDocument.Content
With myRange.Find
.Format = True
.Font.Color = wdColorRed
If .Execute = True Then myRange.Paragraphs(1).Range.Select
End With
End Sub
作者: 守柔 发布时间: 2006-12-31
刚才测试了两位版主的代码,效果不一样:3楼的可选中第1个全段为红色字符的实例,而4楼的可选中第1个段落包含红色字符(可以还有不为红色的字符)的实例;两者都只能选中1个实例。
看来楼主对要求说得不够明确。
想请教一个问题:如果要选中匹配的全部实例,代码应怎么改?
[此贴子已经被作者于2006-12-31 9:01:49编辑过]
作者: sylun 发布时间: 2006-12-31
如果有连续的三段能否想到方法?
作者: chuhaiou 发布时间: 2006-12-31
如果有连续的三段能否想到方法?
把我的代码修改为 If .Execute = True Then myRange.Paragraphs(1).Range.Select
修改为: If .Execute = True Then myRange.Select.
有可能实现楼主的要求.
我想并不是方法不好,而是楼主你的要求不明确。
无论哪种方法,总有可能实现你的要求。
比如说,连续的三段,三段的内容是否全是红色(包含段落标记也是红色)、你选定的目标是什么,通常情况下,选定只是方法不是目的。
我希望楼主能把你想要达到的目的写不来,而不是考查我们的代码水平,谢谢。
作者: 守柔 发布时间: 2006-12-31
谢谢版主的回复!我在这里收获不小。我是想将一个多行WORD表格转换成文本后,只删除表格转换成文本后的段落符而不删除其他地方段落符。
作者: chuhaiou 发布时间: 2006-12-31
总是解决了,谢谢各位的无私帮助!
作者: chuhaiou 发布时间: 2006-12-31
总是解决了,谢谢各位的无私帮助!
作者: chuhaiou 发布时间: 2006-12-31
作者: hhzjxss 发布时间: 2011-06-27
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28