如何通过它的名称引用Range中的列

时间:2016-06-10 08:10:26

标签: excel-vba vba excel

我在Excel中有一个表格,我添加了一行。然后我引用该行,并且能够使用数字在列中存储值。

Dim table As ListObject
Dim lastRow As Range

Set table = sheet.ListObjects.Item("TagTable")
table.ListRows.Add
Set lastRow = table.ListRows(table.ListRows.Count).Range
lastRow(1) = "Value for column 1"
lastRow(2) = "Value for 2"

问题在于它不是非常灵活。我宁愿解决列名。我疯狂地搜索,但我无法找到有关如何实现这一目标的任何信息。这甚至是可能的,还是我用这段代码做了些什么?

1 个答案:

答案 0 :(得分:2)

ListObject具有ListColumns属性,可以按名称访问列。

使用它的一种方法是:

Sub Demo()
    Dim ws As Worksheet
    Dim table As ListObject
    Dim lstrow As ListRow

    Set ws = ActiveSheet ' Set to your required sheet
    Set table = ws.ListObjects.Item("TagTable")
    Set lstrow = table.ListRows.Add
    lstrow.Range.Cells(1, table.ListColumns("NameOfColumn1").Index) = "Value for column 1"
    lstrow.Range.Cells(1, table.ListColumns("NameOfColumn2").Index) = "Value for 2"
End Sub