我目前正在尝试使用excel VBAs ListObjects
,它是excel表的对象类型。我想将表列范围存储到变量中。
这是我能做的:
'store a group of cells into a range variable
dim rng as Range
set rng = activesheet.Range("A1:A10")
'select a table column
dim table as ListObject
set table = activesheet.listobjects("Table1")
table.ListColumns(1).Range.Select
虽然上述两种方法都有效,但我不明白为什么以下方法无效:( 编辑:有效)
dim rng_column as Range
set rng_column = table.ListColumns(1).Range
我尝试了其他变量类型,例如variant
或ListColumn
,然而,没有任何内容将单元格存储到变量中。在上面的示例中,没有错误,但变量rng_column
仍为<empty>
我知道还有其他解决方法,但我真的想了解这里的问题是什么。
更新 经过一些有用的评论后,我可以缩小问题范围。一切正常。但是,我犯了两个错误。
首先,我在变量名中有拼写错误。 (我应该明确包含选项以提前通知)。
其次,我将范围变量传递给另一个范围变量,在这样做时忘记包含set
关键字。
希望有人可以从我的错误中吸取教训。
答案 0 :(得分:0)
你在标题中有一个误称。从技术上讲,您无法将任何数据存储到范围变量中。
范围变量是指单元格或一组单元格的引用(指针)。数据存储在范围变量指向的单元格中。
如果需要存储范围内的数据,请将range.value分配给数组
如果要存储来自单个单元格的数据,则将该值分配给“常规”(非对象)变量(字符串,整数,长...)