我有一个包含少量表格的Excel文件,但是在不同的表格和位置上。摘要表引用了每个摘要表。问题是我得到#VALUE!使用此公式时出错:
=Table1[@Column1]
如下面的示例所示,当两个表位于同一行时,它可以工作,但当同一个表移开或关闭时,它将停止工作。有什么想法吗?
答案 0 :(得分:1)
问题:
使用以下结构化参考
=Table1[@Column1]
您正在执行#This行上下文,即只有当您的附加表在同一行上对齐时,它才能正常工作。
如果你排列表格,你会发现它有效。
<强>解决方案:强>
您可以通过引用这两个表并使用OFFSET
和ROW
函数来作弊:
=OFFSET(Table1,ROW(F9)-ROW(Table2),,1,1)
备注:强>
1)ROW(F9)-ROW(Table2)
生成要抵消的行数。
2)=CELL("address",Table1)
为您提供表格中的第一个数据正文范围单元格地址。
您可以使用与索引
类似的想法=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)
,依此类推
但是,您需要手动将其键入到应该具有参考的每个单元格中。