我收到错误消息'编译错误:无效限定符'在下面代码的第二行。
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
有人能告诉我为什么将范围分配给变量会破坏代码吗?也许我应该使用不同的变量类型?任何帮助将不胜感激。
答案 0 :(得分:1)
添加Set
Set Init_Range = Sheets("Sheet1").ListObjects("Table1").ListColumns(9).DataBodyRange
Set Init_Mod_Range = Sheets("Sheet1").ListObjects("Table1").ListColumns(8).DataBodyRange
在处理Object引用时需要使用Set,在处理简单数据类型时可以使用=进行赋值,但是范围和工作表等对象需要Set。
此外,当你声明Init_Range时,我认为你不需要(),这将声明一个范围数组,看起来你只想把它作为一个范围。
答案 1 :(得分:0)
在使用.Select或其他变体之前,需要首先设置像ListObjects和Ranges这样的对象变量:
Set Init_Range = Sheets("Sheet1").ListObjects("Table1").ListColumns(9).DataBodyRange