我必须在同一工作簿中使用Excel Sheets: 表格1(名称为AK):
A B C
--------------------
1 | A2 | | |
--------------------
2 | 20 | | |
--------------------
表2包含以下公式:
=INDIRECT("AK!" & ADDRESS(2;1;1;"TRUE";"AK"))
现在,我想通过VBA将这个公式动态添加到工作表中,并写以下行:
ActiveWorkbook.Worksheets("Sheet2").Range("q2").Formula = "=IF(A2<>"""",VLOOKUP(T2,INDIRECT(""AK!"" & ADDRESS(2,1,1,TRUE,""AK"")):INDIRECT(""AK!"" & ADDRESS(2,2,1,TRUE,""AK"")),2,0),"""")"
但是我收到#BEZUG
错误(我使用德语的Excel)。怎么了?
当我将公式的各个部分键入到单元格中时,我得到以下结果:
=ADDRESS(2;1;1;TRUE;"AK")
产生AK!$A$1
,如预期。
但是,=INDIRECT("AK!" & ADDRESS(2;1;1;"TRUE";"AK"))
会产生#BEZUG
。
感谢您的帮助!
答案 0 :(得分:0)
"AK!" & ADDRESS(2;1;1;"TRUE";"AK")
将给出AK!AK!$A$2
,因为Address
函数已经包含工作表名称。
改为使用=INDIRECT(ADDRESS(2;1;1;"TRUE";"AK")
。
"TRUE"
是否正确?应该不是0(R1C1样式)还是1(A1样式)?
答案 1 :(得分:0)
嵌套Indirect
可以这样解决:
`=INDIRECT("AK!" & INDIRECT("AK!" & ADDRESS(2;1;1;"TRUE";"AK")))`