请参阅表格中的Excel单元格标题名称和行号

Ole*_*røm 17 excel vba

我试图通过使用表头名称和使用VBA的行号来引用excel表中的单元格.

这是真的吗?

在此输入图像描述

bre*_*tdj 31

在您的示例中,这样的事情:

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)
Run Code Online (Sandbox Code Playgroud)

  • 您也可以像这样引用表名:ActiveSheet.ListObjects("Table1") (4认同)
  • 另请参阅 `Range("TableName").ListObject` (2认同)

小智 12

一个较短的答案是:

MsgBox [MyTable].Cells(2, [MyTable[MyColumn]].Column)
Run Code Online (Sandbox Code Playgroud)

更清洁,更轻松!


Mik*_*sch 6

有什么理由应该避免使用这种方法吗?

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

在我看来,这似乎是最简单的答案。


Tom*_*dle 5

在我看来,@Salam Morcos 解决方案不会给出正确的答案。如果表格从单元格A2语句开始,则[MyTable[FirstColumnName]].Column值为 2。正确的解决方案是:

MsgBox [MyTable].Cells(2, [MyTable].Column-[MyTable[MyColumn]].Column + 1)
Run Code Online (Sandbox Code Playgroud)