如何在VBA中引用表

时间:2016-10-27 20:23:59

标签: excel excel-vba range vba

我在工作表上放置一个按钮,允许将表格中两列中的所有项目大写。

以下是我在其他地方找到并适合尝试工作的代码:

Private Sub CommandButton1_Click()
 With Range("B10", Cells(Rows.Count, "B").End(xlUp))
        .Value = Evaluate("INDEX(UPPER(" & .Address(External:=True) & "),)")
    End With
With Range("C10", Cells(Rows.Count, "C").End(xlUp))
        .Value = Evaluate("INDEX(UPPER(" & .Address(External:=True) & "),)")
    End With
End Sub

我希望Range引用Table2,第1列和第1列。而不是B&下进行。

建议?

1 个答案:

答案 0 :(得分:1)

要访问各种表范围和引用,您需要使用ListObject。这是一个例子:

Option Explicit

Sub test()
    Dim ws As Worksheet
    Dim t2 As ListObject
    Set ws = ActiveSheet
    Set t2 = ws.ListObjects("Table2")
    Debug.Print t2.ListColumns(1).Name

    Dim refRange As Range
    Set refRange = Union(t2.ListColumns(1).Range, t2.ListColumns(2).Range)
    Debug.Print refRange.Address
End Sub