VBA宏:使用带有类型修饰符的变量

Ani*_*han 2 excel vba excel-vba

我用速记符号声明了一个整数变量testInt,如下所示

Dim testInt% 
Run Code Online (Sandbox Code Playgroud)

使用之间有什么区别吗?

somevalue = testInt * testInt
Run Code Online (Sandbox Code Playgroud)

somevalue = testInt% * testInt%
Run Code Online (Sandbox Code Playgroud)

简而言之,在引用变量的每个点上使用类型说明符是否有优势?

bre*_*tdj 5

快速时间测试表明它们是直线球 - 这在直觉上很有意义

使用Long而不是Integer更有效.请参阅此MSFT链接

我将使用更准确的API计时器重复此操作

Sub B()
Dim testInt%
Dim somevalue%
Dim lcnt As Long
Dim dbStart As Double
dbStart = Timer()
For lcnt = 1 To 100000000
somevalue = testInt * testInt
Next
MsgBox "Time was " & Timer() - dbStart
End Sub

Sub A()
Dim testInt%
Dim somevalue%
Dim lcnt As Long
Dim dbStart As Double
dbStart = Timer()
For lcnt = 1 To 100000000
somevalue = testInt% * testInt%
Next
MsgBox "Time for type-specified was " & Timer() - dbStart
End Sub
Run Code Online (Sandbox Code Playgroud)