Excel表引用的行号

时间:2018-05-04 07:10:13

标签: excel excel-vba vba

我有一个包含少量表格的Excel文件,但是在不同的表格和位置上。摘要表引用了每个摘要表。问题是我得到#VALUE!使用此公式时出错:

=Table1[@Column1]

如下面的示例所示,当两个表位于同一行时,它可以工作,但当同一个表移开或关闭时,它将停止工作。有什么想法吗?

enter image description here

2 个答案:

答案 0 :(得分:1)

问题:

使用以下结构化参考

=Table1[@Column1]

您正在执行#This行上下文,即只有当您的附加表在同一行上对齐时,它才能正常工作。

如果你排列表格,你会发现它有效。

<强>解决方案:

您可以通过引用这两个表并使用OFFSETROW函数来作弊:

=OFFSET(Table1,ROW(F9)-ROW(Table2),,1,1)

备注:

1)ROW(F9)-ROW(Table2)生成要抵消的行数。

2)=CELL("address",Table1)为您提供表格中的第一个数据正文范围单元格地址。

Cheat

您可以使用与索引

类似的想法
=INDEX(Table1[Column1], ROWS($E$17:E17))

答案 1 :(得分:0)

我不太确定我是否理解你的问题 然而,无论表格放在何处,这都有效:

Sub Table_Reference()
Dim rng As Range
Set rng = Range("Table1[Column1]")

Range("Table2[Column1]").Value = rng.Value

End Sub

您可能希望在代码开头指定您正在使用的工作表。

修改

由于OP不需要VBA,我建议使用=INDEX(Table1[Column1]; 1)
这将引用指定表和列中的第一行数据,例如。 &#34;表1&#34;和#34; Column1&#34;。
引用下一行将是=INDEX(Table1[Column1]; 2),依此类推 但是,您需要手动将其键入到应该具有参考的每个单元格中。