Excel VBA - 以定义的名称调用单个单元格

时间:2014-07-14 22:38:28

标签: excel-vba vba excel

我已经在它后面的列中定义了一列(即Data1 - > Label1,Data2 - > Label2等)我发现我需要在我的表单中添加一个数据字段,它也将依赖于当前命名的列(即Extra1 - > Label 1等)。

我可以创建所有新标签,但我宁愿让两个单元格都依赖于同一个标签。我在一张废纸上玩过,当有多个单元格时,不能使单元格等于已定义名称的单元格。如果我只有一个,我没有问题:

A         B
Data1     Label1
=Label1

第二行会给我Data1。

A         B         C
Data1     Data2     Label1
=Label1

会给我一个#VALUE错误。

如何从这样定义的名称中获取单个单元格?它是一个范围?尝试在VBA中抓取它作为Label1.Cells(x,x)也给我一个错误。我是否必须为第二个数据列制作单独的标签(不理想)。

谢谢,

1 个答案:

答案 0 :(得分:1)

您可以使用INDEX函数在第二行获取 Data1

=INDEX(Label1,1,1)

在示例

中返回 Data2
=INDEX(Label1,1,2)

编辑1:这是与VBA等效的

Range("Label1")(1) '~~> return Data1
Range("Label1")(2) '~~> return Data2

或者你可以是明确的

Range("Label1").Item(1, 1) '~~> return Data1

这是使用 WorsheetFunction

的VBA
WorksheetFunction.Index(Range("Label1"), 1, 1) '~~> return Data1