![](/img/trans.png)
[英]How To Reference an Excel Table Cell by Row Number or Horizontal Header Using Table Notation?
[英]Refer to Excel cell in Table by header name and row number
我试图通过使用 VBA 使用表标题名称和行号来引用 Excel 表中的单元格。
我怎样才能做到这一点?
在你的例子中,是这样的:
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)
一个简短的答案是:
MsgBox [MyTable].Cells(2, [MyTable[MyColumn]].Column)
更干净,更容易!
有什么理由应该避免使用这种方法吗?
ThisWorkbook.Worksheets("MyWksht").Range("TableName[ColumnTitle]").Cells(RowNumber)
在我看来,这似乎是最简单的答案。
在我看来,@Salam Morcos 解决方案不会给出正确的答案。 如果表格从单元格A2
语句[MyTable[FirstColumnName]].Column
,则值为 2。正确的解决方案是:
MsgBox [MyTable].Cells(2, [MyTable].Column-[MyTable[MyColumn]].Column + 1)
就这么简单。 如果您按列的名称调用,则该范围的列索引将为 1,因此:
msgbox ActiveSheet.ListObjects(1).ListColumns("header4").DataBodyRange(2,1).value
更简单,更动态:
ThisWorkbook.Worksheets("WorkSheet_Name").Range("Table_Name").Rows(Table_row_number).Select
如果你想写短:
[MyTable[header4]].Rows(2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.