我试图在命名表(即列表对象)中找到一个值,但失败了。 我有一个页面,其中包含与该页面同名的表。到目前为止,我有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”中的信息,并返回包含的值。我找不到如何通过命名列和引用行访问表中的单元格。如果应该很简单,但我找不到任何示例。有人可以帮忙吗?
答案 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
代码将使用“匹配功能”来查找值。如果找不到,它将弹出一条消息(不是我必须承认的最佳错误处理)。
尝试使其适应您的需求。