2015-03-31 72 views
1

查看波紋管VBE告訴它期望第3行有一個「=」,儘管.Add是一個子事實,我不明白爲什麼?VBA奇怪的語法

1 Sub Set_Params(key As String, value As Variant) 
2  Dim Tranasitions as Collection 
3  Transitions.Add (value, key) 
4 End Sub 
+1

「添加」後有一個空格。 – miradulo 2015-03-31 16:42:19

+0

我剛剛測試沒有這個空間,:(相同的結果 – sgp667 2015-03-31 16:43:27

回答

2

這是因爲您的代碼不知道什麼Tranasitions是,你必須在聲明(中Dim線)一個錯字。

因此,要解決這個問題,解決這個聲明:

Dim Transitions as Collection 

然後從通話中刪除(),你不要在VBA與潛艇使用它們(除非你把Call在前面):

Transitions.Add value, key 
-1

首先,請使用一致的名稱引用該集合。然後,使用Call Transitions.Add等或刪除括號。

Vba有這種神祕的調用語法。

+0

減一個?我在這裏正確。多年來一直這樣做 – Bathsheba 2015-03-31 16:50:45

+0

'Call'是一個古老的語言版本的關鍵字 – RubberDuck 2015-03-31 16:54:11

+0

實際上不是。是非常微妙的不同谷歌它 – Bathsheba 2015-03-31 16:55:03

0

刪除括號。

Sub Set_Params(key As String, value As Variant) 
    Dim Transitions as New Collection 
    Transitions.Add value, key 
End Sub 

另外,您必須實際創建一個Transitions的新實例。 哦,你在宣佈它時拼寫TransitionsTranasitions。打開Option Explicit,這樣就不會再發生了。