我正在尝试遍历Vertical Excel Table中的各种元素,并使用VBA将它们传递给水平表。垂直表是一个包含问题列表(名称,标签,值)的表单,水平表将包含使用垂直表中的问题名称的列。
代码看起来像这样:
Dim row As Range
Dim rowCount As Integer: rowCount = 1
For Each row In [tbl_QUESTIONS[name]].Rows
Sheets(ANSWERS).Cells(r,rowCount).Value = row.Value
rowCount = rowCount + 1
Next
我的问题是,如何修改表引用和列引用以使它们是动态的?
[tbl_QUESTIONS[name]].Rows
我希望能够做到这样的事情:
["tbl_" & tblName & "[" & colName & "]]".Rows
但这似乎不起作用......有没有更简单的方法来引用这个使用VBA?我觉得必须有一种方法可以从[“tbl_”&中创建ListObject。 tblName]但我无法在ListObject或ListObject.Rows中引用'colName'
任何帮助都将不胜感激。
哦,如果可能的话,我想保持这与Excel 2007 VBA兼容。
干杯!
答案 0 :(得分:0)
我偶然发现 this link ,似乎可以解决问题。
看起来我可以使用以下内容创建范围:
Dim TBL As Range
Set TBL = Range("tbl_" & tblName & "[" & colName & "]")
我仍然希望看到一种保留ListObject而不是定义范围的方法,但我会继续使用它,直到我有另一种选择。
答案 1 :(得分:0)
你现在可能已经知道了,但由于这个问题没有答案......
使用LisObjects集合选择一个listObject并将其作为参数传递给你的function / sub