在此链接中http://www.excelhome.net/News/ShowArticle.asp?ArticleID=96的问题五中,有一个插入平方根域的一个代码,尽管是获奖作品,显然部分内容不够精炼。以下为优化后的两个过程,
Sub InsertReq()
Dim Insertvalue As String
On Error Resume Next
With Selection
If .End > .Start Then
Insertvalue = IIf(Selection Like "*" & Chr(13), Range(Selection.Start, Selection.End - 1), Selection)
.Delete
Application.Run "InsertFieldChars"
.InsertAfter "Eq \r(2," & Insertvalue & ")"
End If
.Fields.ToggleShowCodes
End With
End Sub
方法二:
Sub InsertReq()
With Selection
If .Type = wdSelectionNormal Then _
: .Text = "Eq \r(2," & IIf(InStr(Selection, Chr(13)) > 0, Range(.Start, .End - 1), Selection) & ")" _
: Application.Run "InsertFieldChars" _
: .Fields.ToggleShowCodes
End With
End Sub
同样一个结果,此两个过程中还加了错误判断、多条件判断,显然较原文章更为精简。
分析:很多VBA作品都具有一个设计期,调试期,和优化期,随着对于对象、属性、方法的不断深入,对操作过程的不断精简,以及新版本对新对象的支持,许多作品如果能进行多次修改,则你的水平就会不断提高。
另外,笔者认为,适当地运用WORD 命令或者WordBasic 指令,对简化VBA代码和加快运算速度是相当有益的。
此文仅作为初学者及VBA爱好者的一个补充和建议。 |