2016-08-12 80 views
0

VBA新手,但多年使用匯編程序,C和C#的經驗。我創建了一個名爲CPScenarioData的Private Sub(wsname as String,rownum As Integer)。當我打電話使用語句的過程:編譯調用子程序的錯誤

CPScenarioData(wsname, l) 

我得到一個錯誤「編譯錯誤:預期=」,但是當我前面有來電時沒有出現錯誤的說法,這是爲什麼。我有其他私人潛艇,我打電話沒有使用呼叫工作正常。我確信我有一個簡單的答案或錯誤,當我看到答案時會感到非常羞怯,但這就是生活。我正在使用Excel 2013 VBA。感謝您的幫助。

+1

丟失括號 –

+0

可能的[在VBA函數調用中,括號用法的規則是什麼?]的重複(http://stackoverflow.com/questions/5413765/what-are-the-rules-governing-usage- of-brackets-in-vba-function-calls) –

回答

1

這是一個VB的怪癖(功能根據口味)。要調用子,您不包括括號。因此,只需鍵入:

CPScenarioData wsname, 1 

通常括號用於表示函數,該函數返回一個值。在VB中,你必須提供一個變量來接收返回的值。 (因此,編譯錯誤爲=;它期望= CPScenario(wsname,1))。

添加單詞Call可以讓您保留Subs的括號(相當於c#void)。

+0

呵呵,我總是得到同樣的錯誤,不知道原因。謝謝! – PartyHatPanda