我开发了一个用户将选择标准的宏,我必须在所选标准上创建公式。 当公式长度大于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个字符导致错误 怎么解决?
答案 0 :(得分:0)
所以你必须缩短公式。
首先,我经常看到工作表名称'[Jan_HC.xls]HC'
。是否真的有必要在公式中包含对另一个工作簿和工作表的引用?如果没有,那么删除它就完成了。
同样,您可以通过将其命名为范围来缩短范围$AX$2:$AX$65536
的字符,例如将其命名为ALL
。
否则,您可以为公式使用多个单元格,并在每个单元格中包含部分,并在目标单元格中完成。
编辑:
您可以将SUMPRODUCT
替换为SUM
,因为数组只是1个值,即SIGN
的结果,即1或0。