代码之家  ›  专栏  ›  技术社区  ›  Curtis Inderwiesche

VBA中变量声明的性能优势?

  •  2
  • Curtis Inderwiesche  · 技术社区  · 16 年前

    在函数的开头标注变量与在使用变量之前声明变量相比,是否有性能优势?

    实例

     Function f(y As Long) As Long
          Dim x As Long
          If y <> 0 Then
               x = 1000000
          End If
     End Function
    

    诗句

     Function f(y As Long) As Long
          If y <> 0 Then
               Dim x As Long
               x = 1000000
          End If
     End Function
    
    4 回复  |  直到 10 年前
        1
  •  8
  •   Wadih M.    16 年前

    VBA绝对没有区别。声明变量只会影响设计时调试(IDE将知道要显示什么自动完成(intellisense))。在这种情况下,它根本不会影响性能。我也做过很多VBA宏,这是我注意到的一件事。

    作为演示,只需尝试在 Dim

    希望能有帮助

        2
  •  2
  •   Lunatik    16 年前

    Option Explicit
    
    Private Sub notDeclared()
        Dim x As Long
    
        Debug.Print x
        Debug.Print y
    End Sub

    这将返回一个“变量未定义错误”,断点是过程声明,即在执行任何代码之前,以及未声明的变量 Y

        3
  •  1
  •   Will Rickards    16 年前

    正如Wadih所回答的,代码本身的性能不好。

    我要说的是,大多数程序员希望在函数顶部定义变量。 像你提供的一个简单的例子,这并不重要。但是,代码中穿插着变量声明的复杂函数会让它感觉混乱。从而降低了读取和摸索代码的时间。从而增加了维护所需的时间。

    在维护代码时,代码本身的性能往往不如性能重要。

        4
  •  0
  •   user10445220    6 年前

    Private Sub test2()
        zz = Timer
            For i = 1 To 100000000
                x = x + 1
            Next
        Debug.Print "No décalartion : " & Timer - zz
        yy = Timer
        Dim y As Long
            For i = 1 To 100000000
                y = y + 1
            Next
        Debug.Print "No décalartion : " & Timer - yy
    End Sub
    

    你会得到这个结果

    无数据证书:3746094 带dcalartion:1855469

    当做

    推荐文章