下面是我在Word中为了将查找到的文本中的小定字母转换成大定字母,可以达到目的。
但是这段代码运行后其后的代码(以下用 '(其他代码) 代表)就不能运行了?
Sub 小写变大写()
'
Dim myRange As Range
Application.ScreenUpdating = False
Set myRange = ActiveDocument.Content
With myRange
Do While .Find.Execute(findtext:="\\[!\(\\]@\(", _
Forward:=True, Wrap:=wdFindStop, MatchWildcards:=True)
.Text = UCase(.Text)
Loop
End With
'(其他代码)
Application.ScreenUpdating = True '恢复屏幕更新
End Sub
怎样解决这一问题?有无更好的小写字母转换大写的方法?
但是这段代码运行后其后的代码(以下用 '(其他代码) 代表)就不能运行了?
Sub 小写变大写()
'
Dim myRange As Range
Application.ScreenUpdating = False
Set myRange = ActiveDocument.Content
With myRange
Do While .Find.Execute(findtext:="\\[!\(\\]@\(", _
Forward:=True, Wrap:=wdFindStop, MatchWildcards:=True)
.Text = UCase(.Text)
Loop
End With
'(其他代码)
Application.ScreenUpdating = True '恢复屏幕更新
End Sub
怎样解决这一问题?有无更好的小写字母转换大写的方法?
Selection.Range.Case = wdUpperCase '大写
我测试过,并不存在这个问题,因有Wrap:=wdFindStop一句,不会进入死循环。我并非要将全文都变成大写,只是将查找到的字符串中的字母变成大写。
'
Dim myRange As Range
Application.ScreenUpdating = False
Set myRange = ActiveDocument.Content
With myRange
Do While .Find.Execute(findtext:="lowcase", Forward:=True, Wrap:=wdFindStop, MatchWildcards:=True)
.Text = ucase(.Text)
Loop
End With
MsgBox "Done!"
Application.ScreenUpdating = True '恢复屏幕更新
End Sub
===========以上代码运行正常,替换完后可以出现“Done!”对话框。=========
运行环境:
Windows XP SP2 简体中文版
Wodrd2003 Sp1 简体中文版