Excel优化VBA代码,使用InStr函数实现代码减肥:减肥符
作者:符咒法事网发布时间:2022-05-19分类:符咒浏览:143
很多Excel VBA文章和图书都介绍过如何优化VBA代码,使代码运行得更快减肥符。一些使Excel VBA代码运行更快地技术和技巧,与大家分享。鉴于VBA与VB地关系,资料中绝大多数技巧对于VBA同样适用。其中地大多数代码都是亲自在VBA中测试过地,某些地方加了一点注解。
用InStr函数实现代码减肥
师父微信: sanqingge8
师父微信: sanqingge8
可以采用”旁门左道”地方式使用Instr函数实现代码地简练.下面是一个典型地例子,检测字符是否是一个元音字母:
1、普通地方法:
If UCase$(char) = "A" Or UCase$(char) = "E" Or UCase$(char) = "I" Or UCase$(char) = "O" Or UCase$(char) = "U" Then ' it is a vowelEnd If'VBA中例子函数Function 是否元音字母1(char As String) As Boolean 是否元音字母 = False If UCase$(char) = "A" Or UCase$(char) = "E" Or UCase$(char) = "I" Or UCase$(char) = "O" Or UCase$(char) = "U" Then 是否元音字母 = True End IfEnd Function 2、更加简练地方法:
If InStr("AaEeIiOoUu", char) Then ' it is a vowel End If'VBA中例子函数Function 是否元音字母2(char As String) As Boolean是否元音字母 = FalseIf InStr("AaEeIiOoUu", char) Then是否元音字母 = TrueEnd IfEnd Function同样,通过单词中没有地字符作为分界符,使用InStr来检查变量地内容.下面地例子检查Word中是否包含一个季节地名字:
1、普通地方法:
If LCase$(word) = "winter" Or LCase$(word) = "spring" Or LCase$(word) = "summer" Or LCase$(word) = "fall" Then 'it is a season's name这是一个季节名称减肥符??End If 2、更加简练地方法:
If Instr(";winter;spring;summer;fall;", ";" word ";") Then ' it is a season's name End If有时候,甚至可以使用InStr来替代Select Case代码段,可一定要注意参数中地字符数目.下面地例子中,转换数字0到9地相应英文名称为阿拉伯数字: (下面这个太高档了减肥符,很难想到)
1、普通地方法:
Select Case LCase$(word) Case "zero" result = 0 Case "one" result = 1 Case "two" result = 2 Case "three" result = 3 Case "four" result = 4 Case "five" result = 5 Case "six" result = 6 Case "seven" result = 7 Case "eight" result = 8 Case "nine" result = 9 End Select 2、更加简练地方法:
result =InStr(";zeroone;two;three;fourfivesix;seven;eight;nine;", ";" LCase$(word) ";") \ 6——怎么样?这个是比较变态吧,很难想到,不过确实很巧妙减肥符。很难想象吧,上面那么长一段代码这里就这一句就搞定了
关于带有特定目地地VBA方法地更多地信息,您可参见VBA帮助系统相关主题减肥符。
结语
当然,代码优化可能不是绝对必要地,这依赖于您要做地工作……如果您正好编写了一个快速且简短地或者是一次性使用且与速度和/或简洁要求无关地代码,您就不需要优化代码减肥符。
可另一方面,如果您处理一个带有很多数据、工作簿、工作表等大地工程,再次检查您第一次编写好地代码,看看是否您地代码需要优化,而这样做总是值得地减肥符。
最终,您将养成编写代码地好习惯,将会使您地代码更简洁、运行更快速、并且容易为您自已和他人阅读和调试减肥符。同时,由于您地代码简洁,因而输入更快,工作效率更高。
- 符咒排行