2013-09-15 2 views

ответ

17

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

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) 
+1

Wow хорошо! Спасибо! –

+3

Вы также можете обратиться к названию таблицы так: ActiveSheet.ListObjects ("Table1") –

9

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

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

Намного чище и проще!

0

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

MsgBox [MyTable].Cells(2, [MyTable].Column-[MyTable[MyColumn]].Column + 1) 
Смежные вопросы