我编写了一个宏,用于在Microsoft Word中的句子周围添加括号:
Sub AddParentheses()
Dim iCount As Integer
iCount = 1
While Right(Selection.Text, 1) = " " Or _
Right(Selection.Text, 1) = Chr(13)
Selection.MoveLeft Unit:=wdCharacter, Count:=1, _
Extend:=wdExtend
iCount = iCount + 1
Wend
Selection.InsertAfter ")"
Selection.InsertBefore "("
Selection.MoveRight Unit:=wdCharacter, Count:=iCount
End Sub
当我只选择一个句子并运行它时,效果很好,但是如果我不小心在句子的末尾突出了一个段落中断,宏就会开始慢慢突出显示文档中的所有内容,从选择的开始到开始整个文档,这总是使程序崩溃。
任何人都可以指出我的解决方法吗?
VBA分配的默认值是短整数,范围是-32,768到32,767。我认为,如果在选择中发现很多空格,则计数器不会超出该值,因此该方法将在无限时间内保持挂起状态。
试用UInteger Ulong:
Dim ULong As iCount
iCount = 1
或者您可以在计数器达到警告用户的特定点时尝试处理异常。
希望有所帮助