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

时间:2018-10-10 14:51:30

标签: excel vba listobject

我试图在命名表(即列表对象)中找到一个值,但失败了。 我有一个页面,其中包含与该页面同名的表。到目前为止,我有3条工作线在描述列中找到单词“ Area”并返回行号。这是:

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”中的信息,并返回包含的值。我找不到如何通过命名列和引用行访问表中的单元格。如果应该很简单,但我找不到任何示例。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

尝试一下

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

代码将使用“匹配功能”来查找值。如果找不到,它将弹出一条消息(不是我必须承认的最佳错误处理)。

尝试使其适应您的需求。