ET疑难千寻千解丛书之EXCEL2010编程与实践 罗刚君 章兰新 黄朝阳 编著
疑难10
如何优化过程“设置字体属性”
以下程序是对A1向下延伸到最后一个非空单元格的区域设置字体属性,如何对它进行优化使程序的效率更高?
- Sub 设置字体属性()
- ActiveWorkbook.Sheets(1).Range([a2], [a2].End(xlDown)).Font.Bold = True '加粗
- ActiveWorkbook.Sheets(1).Range([a2], [a2].End(xlDown)).Font.Italic = True '倾斜
- ActiveWorkbook.Sheets(1).Range([a2], [a2].End(xlDown)).Font.Color Index = 3 '红色
- ActiveWorkbook.Sheets(1).Range([a2], [a2].End(xlDown)).Font.Name = "方正姚体" '设定字体
- ActiveWorkbook.Sheets(1).Range([a2], [a2].End(xlDown)).Font.Size = 21 '指定字体大小
- ActiveWorkbook.Sheets(1).Range([a2], [a2].End(xlDown)).Font.Strikethrough = False '删除线
- ActiveWorkbook.Sheets(1).Range([a2], [a2].End(xlDown)).Font.Superscript = False '取消上标
- ActiveWorkbook.Sheets(1).Range([a2], [a2].End(xlDown)).Font.Subscript = False '取消下标
- ActiveWorkbook.Sheets(1).Range([a2], [a2].End(xlDown)).Font.Underline = xlUnderlineStyleDouble '指定双下画线
- End Sub
复制代码è解决方案 对于多次调用相同对象者,可以利用With语句来简化,不仅在书写上简化,在执行效率上也可以有所提升,即通过With将多次调用对象改为调用一次。
í操作方法
步骤1
通过With改写程序,让对象仅仅调用一次,代码如下:
- Sub 设置字体属性2() '利用With优化程序
- With ActiveWorkbook.Sheets(1).Range([a2], [a2].End(xlDown)).Font
- '设置字体
- .Bold = True '加粗
- .Italic = True '倾斜
- .ColorIndex = 3 '红色
- .Name = "方正姚体" '设定字体
- .Size = 21 '指定字体大小
- .Strikethrough = False '不要删除线
- .Superscript = False '不要上标
- .Subscript = False '不要下标
- .Underline = xlUnderlineStyleDouble '指定双下画线
- End With
- End Sub
复制代码 步骤2
分别执行两段代码,可以发现其效果完全一致,但不管是书写还是执行效率上,第二段代码都会占有优势。
============================= 以上摘自《EXCEL2010编程与实践》 |