在編寫VBA時,我喜歡在開發週期中的特定點上調用少量的幫助器方法。我最有用的是靈感來自Laravel的dd($variable)
函數 - 死亡和轉儲。換句話說,吐出變量的輸出,然後殺死進程,以便不進行其他處理。我用它來設置斷點。VBA Excel - 模塊和轉儲集合
現在我現在的自定義助手可以轉儲一個變量以及一個數組,但我怎麼能得到它的集合呢?
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Die and Dump
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function dd(value As Variant)
Dim ArrayBoolean As Boolean
Dim i As Integer
ArrayBoolean = IsArray(value)
' Commence to dumping the data
If ArrayBoolean = True Then
For i = LBound(value) To UBound(value): Debug.Print (value(i)): Next
Else
Debug.Print (value)
End If
' Now Die!
End
End Function
我曾嘗試以下:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Die and Dump a Collection
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function ddc(value As Collection)
Dim coll As Variant
' Dump
For Each coll In value
Debug.Print coll
Next coll
' Now Die!
End
End Function
但是當我做Helpers.ddc (objectsInWorkbook)
我得到一個Argument not optional
錯誤又Helpers.dd(objectsInWorkbook.count)
返回5的整數(對象的集合中的量)
? –
很坦白@ Gary的學生我不知道區別 –
不要使用像'value'這樣的變量名,或者像'for',dim這樣的任何其他vba關鍵字......我懷疑在你的測試中'objectsInWorkbook'是錯誤的類型(或空),但它仍會引發其他錯誤。你的解釋中缺少某些東西。而且你可以只使用一個參數而不使用'call'或使用/(')'來調用一個函數或子函數。與函數的不同之處在於,您可以分配給變量:'a = dd(x)'。 –