繁体   English   中英

按标题名称和行号引用表格中的 Excel 单元格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM