Обратитесь к ячейке Excel в таблице по имени заголовка и номеру строки

Я пытаюсь обратиться к ячейке в таблице excel, используя имя заголовка таблицы и номер строки, используя VBA.

Возможно ли это?

enter image description here

Ответ 1

В вашем примере что-то вроде этого:

Dim tb As ListObject
'assumes Table is the first one on the ActiveSheet
Set tb = ActiveSheet.ListObjects(1)
MsgBox tb.DataBodyRange.Cells(2, tb.ListColumns("header4").Index)

Ответ 2

Более короткий ответ:

MsgBox [MyTable].Cells(2, [MyTable[MyColumn]].Column)

Гораздо чище и проще!

Ответ 3

Есть ли причина, по которой следует избегать использования этого метода?

ThisWorkbook.Worksheets("MyWksht").Range("TableName[ColumnTitle]").Cells(RowNumber)

Кажется, самый простой ответ на мой взгляд.

Ответ 4

Мне кажется, что решение @Salam Morcos не даст правильного ответа. Если таблица начинается с ячейки A2 statment [MyTable[FirstColumnName]].Column, она даст значение 2. Правильное решение:

MsgBox [MyTable].Cells(2, [MyTable].Column-[MyTable[MyColumn]].Column + 1)