繁体   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