本帖最后由 weiyingde 于 2017-4-4 20:01 编辑
总觉还可简化和提速,看看附件中的一个过程的代码:
目的:将“( )"括号的内容隐藏
说明:括号内有的是拼音,有的是汉字。
问题:1、能否用定界符,准确定位括号内的内容?
2、能否用”|“选择符来限定括号内要选择的内容用:(汉字|拼音)的形式
来简化过程
其他,若是融进主体代码中也可以。
附件如下;
Sub 测试()
With ActiveDocument.Content
.Font.ColorIndex = wdBlack
With .Find
.Replacement.Font.ColorIndex = IIf(Me.CommandButton1.Caption = "测试", 8, 1)
.Execute "(\([!^1-^127]@)\)", , , 1, , , , , 1, , 2 '匹配拼音
End With
With .Find
.Replacement.Font.ColorIndex = IIf(Me.CommandButton1.Caption = "测试", 8, 1)
.Execute "\(([!^13]@)\)", , , 1, , , , , 1, , 2 '匹配拼音\([!^13]@\)
End With
With .Find
.Replacement.Font.ColorIndex = 1
.Execute "[\(\)]@", , , 1, , , , , 1, , 2 '匹配拼音\([!^13]@\)
End With
End With
End Sub
今天我利用?:进行精确定位,简化为以下代码,为什么没有效果,而且弹出了毛病对话框
请大虾为我指指路,简化代码如下:
Sub 测试()
With ActiveDocument.Content
.Font.ColorIndex = wdBlack
With .Find
.Replacement.Font.ColorIndex = IIf(Me.CommandButton1.Caption = "测试", 8, 1)
.Execute "(?:(\)([!^1-^127]@|[!^13]@)(?:\))", , , 1, , , , , 1, , 2
End With
End With
End Sub
|