0

我正在尝试遍历垂直 Excel 表中的各种元素,并使用 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_" & tblName] 中创建 ListObject,但我无法在 ListObject 或 ListObject.Rows 中引用“colName”

任何帮助,将不胜感激。

哦,如果可能的话,我想让它与 Excel 2007 VBA 保持兼容。

干杯!

4

2 回答 2

0

我偶然发现了这个链接,它似乎可以解决问题。

看起来我可以使用以下内容创建一个范围:

Dim TBL As Range
Set TBL = Range("tbl_" & tblName & "[" & colName & "]")

我仍然希望看到一种保留 ListObject 而不是定义范围的方法,但我会继续这样做,直到我有替代方案。

于 2014-09-23T16:22:32.400 回答
0

您现在可能知道这一点,但由于这个问题没有答案......

使用 LisObjects 集合选择一个 listObject 并将其作为参数传递给您的函数/子

于 2016-04-03T21:51:35.733 回答