如何通过名称引用范围中的列

bo-*_*-oz 2 excel vba

我在 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"
Run Code Online (Sandbox Code Playgroud)

问题是它不太灵活。我宁愿解决列名称。我正在疯狂地搜索,但我找不到任何有关如何实现这一目标的信息。这是否可能,或者我是否用这段代码做了一些疯狂的事情?

chr*_*sen 5

AListObject有一个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
Run Code Online (Sandbox Code Playgroud)