这应该很简单,但我是 VBA 菜鸟。我已经阅读了很多论坛,发现除了过于复杂的代码,我无法破译以适应我的应用程序。
在 Excel 2007 中,我已经定义了一个表。由于我是论坛的新手,所以我无法发布图片,但该表有 3 列,标题行命名为 1 到 3,还有一个数据行,粗略如下所示:
Table1
+------+------+-------+
|1 | 2 | 3 |
+------+------+-------+
|Alpha |Bravo |Charlie|
+------+------+-------+
使用这个简单的表,以下工作,并返回文本“Alpha”。
Sub works()
Dim item As String
Sheets("Sheet1").Select
item = ActiveSheet.Range("Table1[1]")
MsgBox (item)
End Sub
但我希望能够使用可调变量来引用表格列标题。为什么这不起作用:
Sub doesntwork()
Dim item As String
Dim i As String
i = 1
Sheets("Sheet1").Select
item = ActiveSheet.Range("Table1[i]")
MsgBox (item)
End Sub
这一定是语法问题,但我没有运气在过去 10 多年中对 VBA 语法的所有各种迭代进行排序......
请帮忙!谢谢。
最佳答案
如果您想引用结构化表的标题,那么这将为您提供对包含标题的范围的引用:
Dim rng as Range
Set rng = Activesheet.Range("Table1[#Headers]")
...如果您想按位置引用特定标题:
Dim rngHdr2
Set rngHdr2 = rng.Cells(2) '2nd header cell
关于excel - 按变量引用表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11569288/