簡體   English   中英

接收編譯錯誤:范圍對象上的限定符無效

[英]Receiving Compile Error: Invalid qualifier on Range Object

我在以下代碼的倒數第二行收到錯誤消息“編譯錯誤:無效的限定符”。

Dim Init_Range() As Range
Dim Init_Mod_Range() As Range

Init_Range = Sheets("Sheet1").ListObjects("Table1").ListColumns(9).DataBodyRange
Init_Mod_Range = Sheets("Sheet1").ListObjects("Table1").ListColumns(8).DataBodyRange

Init_Range.Select
Selection.Clear

我確信我能夠選擇一個范圍,因為如果我切換到下面的代碼行,它就可以工作。

Sheets("Sheet1").ListObjects("Table1").ListColumns(9).DataBodyRange.Select
Selection.Clear

誰能告訴我為什么將范圍分配給變量會破壞代碼? 也許我應該使用不同的變量類型? 任何幫助將不勝感激。

添加集

Set Init_Range = Sheets("Sheet1").ListObjects("Table1").ListColumns(9).DataBodyRange

Set Init_Mod_Range = Sheets("Sheet1").ListObjects("Table1").ListColumns(8).DataBodyRange

處理對象引用時需要使用Set,處理簡單數據類型時可以使用=進行賦值,但范圍和工作表等對象需要Set。

此外,我認為您在聲明 Init_Range 時不需要 (),這將聲明一個范圍數組,看來您只希望它是一個范圍。

在您可以使用 .Select 或其他變體之前,需要先設置 ListObjects 和 Ranges 等對象變量:

Set Init_Range = Sheets("Sheet1").ListObjects("Table1").ListColumns(9).DataBodyRange

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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