[英]Run time error 91 on Collection
我有一個名為“ rng1”的范圍,第一行是標題。 我想有一個collection
來存儲所有變量名。 假設有5個變量。
Sub Main()
Dim rng As Range
Set rng = Range("rng1")
Dim header As Collection
For i = 1 To 5
header.Add Item:=Cells(rng.Row, rng.Column).Offset(0, i - 1).Value
Next i
End Sub
使用代碼MsgBox Cells(rng.Row, rng.Column).Offset(0,0).Value
時,我能夠顯示變量名稱
您永遠不會將header
設置為對象。 當您將header
聲明為Collection時,它指示編譯器為Collection
對象保留空間,但實際上並未創建一個對象。 為了實例化對象,您需要執行以下操作:
Set header = New Collection
如果您要創建實例(而不是從現有實例進行分配),則該語言提供了一些快捷語法,並使您可以在一行上結合使用聲明和實例化:
Dim header As New Collection
因此,完整的代碼如下所示:
Sub Main()
Dim rng As Range
Set rng = Range("rng1")
Dim header As New Collection
For i = 1 To 5
header.Add Item:=Cells(rng.Row, rng.Column).Offset(0, i - 1).Value
Next i
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.