簡體   English   中英

在集合上運行時錯誤91

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM