尝试使用 VBA 访问命名表以查找值

Trying to access named tables with VBA to lookup a value

我试图在命名的 table(即列表对象)中找到一个值,但失败得很惨。 我有一个包含与该页面同名的 table 的页面。到目前为止,我有 3 个工作行可以在描述列中找到单词 "Area" 并在行号中找到 return。这是:

Function CheckArea(ByVal My_Table As String)
     Set Table = Worksheets(My_Table).ListObjects(My_Table)
     Descriptions = Table.ListColumns("Description").Range
     found_cell = Application.Match("Area", Descriptions, 0)

找到该行后,我想访问同一行中不同列的信息 "Schem typ" 和 return 包含的值。我找不到如何通过命名列和引用行访问 table 中的单元格。如果应该很简单,但我找不到任何例子。有人可以帮忙吗?

Table.ListColumns("Schem Typ").Range.Cells(found_Cell)

试试这个

Dim MyTable As ListObject

Set MyTable = ThisWorkbook.ActiveSheet.ListObjects("Tabla_1")

Dim ZZ As Long

Dim MySearch As String

MySearch = "caca" 'change this whatever you want

On Error GoTo Errores:
ZZ = Application.WorksheetFunction.Match(MySearch, MyTable.ListColumns(1).Range, 0) - 1 'minus 1 to exclude header. Change 1 for number of column where you are searching

Debug.Print MyTable.DataBodyRange.Cells(ZZ, 2).Value 'Change 2 for number of column you want to obtain

Clear_All:
Set MyTable = Nothing

Exit Sub

Errores:
If Err.Number = 1004 Then
    MsgBox MySearch & " not found"
    GoTo Clear_All
Else
    MsgBox Err.Description
End If

代码将使用匹配函数来查找值。如果没有找到,它会弹出一条消息(我必须承认这不是最好的错误处理)。

尝试根据您的需要进行调整。