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

时间:2013-09-15 10:40:38

标签: excel vba excel-vba

我正在尝试使用表头名称和使用VBA的行号来引用excel表中的单元格。

这是可能的吗?

enter image description here

7 个答案:

答案 0 :(得分:29)

在您的示例中,类似这样的内容:

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 :(得分:11)

简短的回答是:

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

更清洁,更轻松!

答案 2 :(得分:3)

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

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

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

答案 3 :(得分:2)

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

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

答案 4 :(得分:0)

就这么简单。如果按列名调用,则该范围的列索引将为1,因此:

msgbox ActiveSheet.ListObjects(1).ListColumns("header4").DataBodyRange(2,1).value

答案 5 :(得分:0)

更简单,更动态:

ThisWorkbook.Worksheets("WorkSheet_Name").Range("Table_Name").Rows(Table_row_number).Select

答案 6 :(得分:-1)

如果要简短地写:

[MyTable[header4]].Rows(2)