Excel VBA - 将表列存储到范围变量

时间:2017-10-17 15:07:13

标签: excel vba excel-vba range listobject

我目前正在尝试使用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

我尝试了其他变量类型,例如variantListColumn,然而,没有任何内容将单元格存储到变量中。在上面的示例中,没有错误,但变量rng_column仍为<empty> 我知道还有其他解决方法,但我真的想了解这里的问题是什么。

更新 经过一些有用的评论后,我可以缩小问题范围。一切正常。但是,我犯了两个错误。

首先,我在变量名中有拼写错误。 (我应该明确包含选项以提前通知)。

其次,我将范围变量传递给另一个范围变量,在这样做时忘记包含set关键字。

希望有人可以从我的错误中吸取教训。

1 个答案:

答案 0 :(得分:0)

你在标题中有一个误称。从技术上讲,您无法将任何数据存储到范围变量中。

范围变量是指单元格或一组单元格的引用(指针)。数据存储在范围变量指向的单元格中。

如果需要存储范围内的数据,请将range.value分配给数组

如果要存储来自单个单元格的数据,则将该值分配给“常规”(非对象)变量(字符串,整数,长...)