【问题标题】:Loop through each row in dynamic column using Excel Tables and VBA使用 Excel 表格和 VBA 循环遍历动态列中的每一行
【发布时间】:2014-11-17 22:24:32
【问题描述】:

我正在尝试遍历垂直 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 保持兼容。

干杯!

【问题讨论】:

    标签: vba excel listobject


    【解决方案1】:

    我偶然发现了 this link,它似乎可以解决问题。

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

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

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

    【讨论】:

      【解决方案2】:

      你现在可能已经知道了,但是由于这个问题没有答案......

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

      【讨论】:

        猜你喜欢
        • 2012-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多