excel vba运行时错误7:内存不足公式长度大于1024



我开发了一个宏,用户可以在其中选择条件,我必须根据所选条件创建公式。当公式长度大于1024个字符时,出现内存不足错误7。

ActiveSheet.Cells(29, 4).Formula = quar_dchc_high_8_9_10

字符串quar_dchc_high_8_9_10的长度为1290个字符。这会造成问题吗?quar_dchc_high_8_9_10中的公式为

=SUMPRODUCT(SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536="6G"),SIGN('[Jan_HC.xls]HC'!$X$2:$X$65536="Female"),SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536=8))+SUMPRODUCT(SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536="6G"),SIGN('[Jan_HC.xls]HC'!$X$2:$X$65536="Female"),SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536=9))+SUMPRODUCT(SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536="6G"),SIGN('[Jan_HC.xls]HC'!$X$2:$X$65536="Female"),SIGN('[Jan_HC.xls]HC'!$AX$2:$AX$65536=10))+SUMPRODUCT(SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Feb_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536=8))+SUMPRODUCT(SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Feb_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536=9))+SUMPRODUCT(SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Feb_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Feb_HC.xls]HC'!$AV$2:$AV$65536=10))+SUMPRODUCT(SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Mar_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536=8))+SUMPRODUCT(SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Mar_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536=9))+SUMPRODUCT(SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536="6G"),SIGN('[Mar_HC.xls]HC'!$W$2:$W$65536="Female"),SIGN('[Mar_HC.xls]HC'!$AV$2:$AV$65536=10))

公式长度是否大于1024个字符导致错误如何解决?

因此必须缩短公式。

首先,我经常看到图纸名称'[Jan_HC.xls]HC'。真的有必要在公式中包含对另一个工作簿和工作表的引用吗?如果没有,那么把它取下来,你就完成了。

同样,您可以通过将范围$AX$2:$AX$65536设为命名范围来缩短字符,例如将其命名为ALL

否则,您可以为公式使用多个单元格,并且每个单元格中都有零件,这些零件将在目标单元格中最终确定。

编辑:

您可以将SUMPRODUCT替换为SUM,因为数组只有1个值,即SIGN的结果,即1或0。

最新更新