如何将Excel工作表中第一个列表对象的范围设置为变量?

时间:2015-07-15 17:49:48

标签: excel vba excel-vba

我在Excel中有一个用于更改和处理表中数据的宏。我试图在它影响的表中使它不那么具体。当我需要在表中搜索时,我的宏显式引用了表名,有时还引用了特定的表头,如下所示:

Range("productUpdate[id]")

我希望我的宏能够处理与特定条件不匹配的表。我想我可以将名称分配给变量,但我不知道得到我需要的数据。我该如何做到这一点?

我查找信息的标准:

  • 桌子的名字可以是任何东西。
  • 第一列标题可以命名为任何名称。
  • 该表始终是工作表中的第一个table / listobject。

2 个答案:

答案 0 :(得分:1)

您可以使用字符串连接。 Range(tblN & "[" & colN & "]")其中tblNcolN是包含表名和列名的字符串变量。

答案 1 :(得分:1)

假设我正确理解了您的问题,您可以将变量指向工作表中的第一个表:

Sub Testit()
    Dim tbl As ListObject

    Set tbl = Sheet1.ListObjects(1)
End Sub

从那里,您可以根据需要引用表格属性。示例如下:

MsgBox tbl.Name
MsgBox tbl.ListColumns.Count
MsgBox tbl.ListColumns(2).Name