我试图将多个参数从一个子传递到另一个子,但它不起作用。即使我尝试将变量定义为字符串。
Sub run
Dim uniqueId, errorMessage, jobId, ErrorCode
uniqueId = "abcc"
jobId = "efgh"
ErrorCode = "ijkl"
errorMessage = "mnop"
DisplayCustomError errorMessage, uniqueId, jobId, ErrorCode
End Sub
Sub DisplayCustomError(errorMessage, uniqueId, jobId, ErrorCode)
WScript.Echo uniqueId
WScript.Echo jobId
WScript.Echo ErrorCode
WScript.Echo errorMessage
End Sub
答案 0 :(得分:0)
VBA
和VBScript
有点不同。
但对于VBA
,以下代码将完美无缺。
一些指示:
您总是希望Dim
所有变量,我知道这可能只是您提供的一个简单示例,但我想提到它。
在Sub
中接收变量时,您始终希望在接收变量的Sub
中定义变量,以便正确使用前面的代码中的variable
。
查看here我询问的问题,即只将某些variables
传递给Sub
。当您只想将一个或两个variables
传递给"接收" Sub
Option Explicit
Sub run()
Dim uniqueId As String
Dim errorMessage As String
Dim jobId As String
Dim ErrorCode As String
uniqueId = "abcc"
jobId = "efgh"
ErrorCode = "ijkl"
errorMessage = "mnop"
DisplayCustomError errorMessage, uniqueId, jobId, ErrorCode
End Sub
Sub DisplayCustomError(ByVal errorMessage As String, ByVal uniqueId As String, _
ByVal jobId As String, ByVal ErrorCode As String)
Debug.Print uniqueId
Debug.Print jobId
Debug.Print ErrorCode
Debug.Print errorMessage
End Sub
答案 1 :(得分:-1)
它必须是Call DisplayCustomError(...)
,因为它只有一个sub,只有函数在前面没有任何东西。
另外:
Sub DisplayCustomError(ByVal errorMessage as String, ByVal uniqueId as String, ByVal jobId as String, ByVal ErrorCode as String)