通过variables引用表格列

这应该很简单,但我是一个VBA noob。 我已经阅读了很多论坛,只find了一些我无法解读的代码,以致于不能适应我的应用程序。

在Excel 2007中我有一个表已经定义。 我不能张贴图片,因为我是新来的论坛,但该表有3列,标题行1到3,以及一个数据行粗略显示如下:

Table1 +------+------+-------+ |1 | 2 | 3 | +------+------+-------+ |Alpha |Bravo |Charlie| +------+------+-------+ 

有了这个简单的表格,下面的工作,并返回文字“阿尔法”。

 Sub works() Dim item As String Sheets("Sheet1").Select item = ActiveSheet.Range("Table1[1]") MsgBox (item) End Sub 

但是我希望能够引用带有可调variables的表格列标题。 为什么不工作:

 Sub doesntwork() Dim item As String Dim i As String i = 1 Sheets("Sheet1").Select item = ActiveSheet.Range("Table1[i]") MsgBox (item) End Sub 

这应该是一个语法的东西,但我没有运气sorting通过在过去10多年的VBA语法的各种迭代…

请帮忙! 谢谢。

如果你想引用一个结构化表格的标题,那么这将得到你对包含标题的范围的引用:

 Dim rng as Range Set rng = Activesheet.Range("Table1[#Headers]") 

…如果你想参考一个特定的标题的位置:

 Dim rngHdr2 Set rngHdr2 = rng.Cells(2) '2nd header cell 

您需要使用连接来将表名称构build为string:

 item = ActiveSheet.Range("Table1[" & i & "]") 

结合两个答案

Sub Demo()

 Dim rng As Range Dim celda As Range Dim nroTabla As Integer Dim nroFila As Integer Dim nroCol As Integer nroTabla = 1 nroFila = 2 nroCol = 3 Set rng = ActiveSheet.Range("Tabla" & nroTabla & "[#Headers]") Set celda = rng.Cells(nroFila, nroCol) celda.Value = 700 

结束小组