【发布时间】:2018-03-29 08:06:44
【问题描述】:
我目前正在试验 excel VBA 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>
我知道还有其他解决方法,但我真的很想了解这里有什么问题。
更新 在一些有用的 cmets 之后,我可以缩小问题的范围。一切正常。然而,我犯了两个错误。
首先,我在变量名中有拼写错误。 (我应该包括选项明确地注意到这一点)。
其次,我将范围变量传递给另一个范围变量,这样做时我忘记包含 set 关键字..
希望有人能从我的错误中吸取教训..
【问题讨论】:
-
该代码对我有用。桌子肯定在你认为的位置吗?
rng似乎与此处无关? -
他们为我工作,你遇到了什么错误?
-
在最后试试这一行,看看它会返回什么
MsgBox rng_column(1)。 -
我没有收到错误,我尝试将
rng_column变量粘贴到以下WorksheetFunction.Match(search, rng_column, 0)中。这里出现了一个错误,因为rng_column是空的。在调试模式下,它在变量上方显示 -
感谢@SJR,它有效。我猜这个错误一定在别的地方..
标签: vba excel range listobject