countifs公式返回#ref! VBA代码更改一张纸后

时间:2019-01-28 22:55:32

标签: excel vba

我构建了一些代码,该代码将来自另一个Excel的数据绘制到sheet2和sheet1中的主要Excel中。我有一些公式,尤其是countifs,可以计算来自sheet2的数据,但是每当代码运行时,即使我选择其中的整列,countifs公式也会出现#REF!错误。

有没有有效的方法来解决这个问题?我之所以这么做是因为countifs,因为我认为这样做会加快速度(因为我有32个要计算的字段)。

=countifs(Details!#REF!;Statictic!A14;Details!#REF!;Statictic!A17)

1 个答案:

答案 0 :(得分:0)

您可以使用INDIRECT“锁定” COUNTIFS的列。如果您始终希望第二和第四列作为范围,那么

=countifs(indirect("Details!B:B"); Statictic!A14; indirect("Details!D:D"); Statictic!A17)

即使删除了列,看起来像范围引用的文本也不会更改,但是需要INDIRECT才能将其转换为可行的范围引用。

您还可以使用非易失性的INDEX。

=countifs(index(Details!A:XFD, 0, 2); Statictic!A14; index(Details!A:XFD, 0, 4); Statictic!A17)

假设您不删除“ Details!A:A”,那么它将始终引用第二列和第四列。