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

时间:2016-05-09 08:15:42

标签: excel vba excel-vba out-of-memory

我开发了一个用户将选择标准的宏,我必须在所选标准上创建公式。 当公式长度大于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个字符导致错误 怎么解决?

1 个答案:

答案 0 :(得分:0)

所以你必须缩短公式。

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

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

否则,您可以为公式使用多个单元格,并在每个单元格中包含部分,并在目标单元格中​​完成。

编辑:

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