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

我开发了一个macros,用户将select标准,我必须在选定的标准上创build公式。 当公式长度大于1024个字符时,出现内存不足错误7。

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

stringquar_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

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

编辑:

您可以用SUMreplaceSUMPRODUCT ,因为数组只有1个值,即SIGN的结果是1或0。