为什么vba要我使用一个函数/子调用的赋值?

kmi*_*ndi 5 vba function

我试图在我的Excel VBA项目中创建一个简单的日志功能.

我想传递当前的过程名称和字符串

log函数看起来像这样:

Public Sub log(procName As String, message As String)
   dolog (procName & ": " & message)
End Sub
Run Code Online (Sandbox Code Playgroud)

我想这样称呼它:

Dim C_PROC_NAME As String
C_PROC_NAME = "autoSave"
log(C_PROC_NAME, "test")
Run Code Online (Sandbox Code Playgroud)

这不起作用,它让我这样做:

test = log(C_PROC_NAME, "test")
Run Code Online (Sandbox Code Playgroud)

并初始化这样的C_PROC_NAME不会工作,以及:

DIM C_PROC_NAME As String = "autoSave"
Run Code Online (Sandbox Code Playgroud)

小智 5

如果你想用parens调用sub,你需要Call在前面放置一个关键字:

Dim C_PROC_NAME As String
C_PROC_NAME = "autoSave"
Call log(C_PROC_NAME, "test")
Run Code Online (Sandbox Code Playgroud)

或者你可以在没有parens的情况下调用它:

Dim C_PROC_NAME As String
C_PROC_NAME = "autoSave"
log C_PROC_NAME, "test"
Run Code Online (Sandbox Code Playgroud)