我知道这是一些 VB 基础知识,但不知道如何问谷歌:
VBA 如何管理常量?在某些语言中,编译器用值替换它们。但是这在 VBA 中是如何工作的?如果我在子/函数中声明它们,而不是在全局空间中,这有关系吗?特别是,如果在运行时多次调用子/函数。
我经常将函数名和其他一些字符串声明为子/函数空间中的常量 - 我更容易阅读我的代码。例如:下面代码中 Get_AppExcel_Ref() 中的 SUB_NAME,用于记录错误事件。如果 Get_AppExcel_Ref() 在程序运行时将被调用几次 - SUB_NAME 将在内存中分配一次,在第一次运行时,还是在每次调用时?或者可能存在某种性能问题,最好将 SUB_NAME 声明为全局。
Private Sub Get_AppExcel_Ref(ByRef appObject As Object)
Const SUB_NAME As String = "Get_AppExcel_Ref"
On Error GoTo ERR_NOT_OPENNED
Set appObject = GetObject(, "Excel.Application")
Exit Sub
ERR_NOT_OPENNED:
If Err.Number = 429 Then
Err.Clear
Set appObject = CreateObject("Excel.Application")
Else
Call LOG.printLog("open Excel", Err, SUB_NAME)
End If
End Sub
'LOG - user class type variable, printLog params: Description, Error, Source Name