Excel VBA-将表列存储到范围变量中
我目前正在试用excel VBAsExcel VBA-将表列存储到范围变量中,vba,excel,range,listobject,Vba,Excel,Range,Listobject,我目前正在试用excel VBAsListObjects,它是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.listobject
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
虽然上述两种方法都有效,但我不明白为什么以下方法无效:(EDIT:it-works)
我尝试了其他变量类型,例如variant
或ListColumn
,但是,没有任何东西将单元格存储到变量中。在上面的示例中,没有错误,但是变量rng\u列
仍然保持
我知道还有其他的解决办法,但我真的想知道这里的问题是什么
更新 经过一些有益的评论后,我可以缩小问题的范围。一切正常。然而,我犯了两个错误 首先,变量名中有一个拼写错误。(我应该包括选项,以便更早地注意到这一点) 其次,我将范围变量传递给另一个范围变量,在执行此操作时,我忘记了包含
set
关键字
希望有人能从我的错误中吸取教训。你的标题用词不当。从技术上讲,不能将任何数据存储到范围变量中 范围变量是指向一个单元格或一组单元格的引用(指针)。数据存储在范围变量指向的单元格中 如果需要存储范围中的数据,请将range.value指定给数组
如果要存储单个单元格中的数据,请将该值指定给一个“常规”(非对象)变量(字符串、整数、长…),该代码适用于我。桌子肯定在你想的地方吗
rng
在这里似乎不相关?它们对我有效,你得到了什么错误?请在末尾尝试这一行,看看它返回了什么MsgBox rng_列(1)
。我没有收到错误,我尝试将rng_列
变量粘贴到以下工作表函数中。匹配(搜索,rng_列,0)
。这是一个错误,因为rng\u列
为空。在调试模式下,它显示在变量Thankle@SJR上方,它可以工作。我想错误一定在别的地方。。
dim rng_column as Range
set rng_column = table.ListColumns(1).Range