将多个参数从一个子传递给另一个子

时间:2017-08-08 06:21:24

标签: vbscript

我试图将多个参数从一个子传递到另一个子,但它不起作用。即使我尝试将变量定义为字符串。

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

2 个答案:

答案 0 :(得分:0)

VBAVBScript有点不同。

但对于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)