下面是我在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
怎样解决这一问题?有无更好的小写字母转换大写的方法?

解决方案 »

  1.   

        Selection.WholeStory '全选
        Selection.Range.Case = wdUpperCase '大写
      

  2.   


    我测试过,并不存在这个问题,因有Wrap:=wdFindStop一句,不会进入死循环。我并非要将全文都变成大写,只是将查找到的字符串中的字母变成大写。
      

  3.   

    Sub lowToUpcase()
    '
        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 简体中文版