2016-05-09 3 views
1

ユーザーが条件を選択し、選択した条件で式を作成する必要があるマクロを開発しました。 数式の長さが1024文字を超えると、メモリエラー7が発生します。excel vbaランタイムエラー7:メモリ不足式の長さが1024より大きい

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

私が見つけた、以下のURL「httpsのあるSIGNのすなわち結果であるので、

あなたはSUMSUMPRODUCTを置き換えることができます://サポート.office.com/ja-us/article/Excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3 "の場合は、ExcelのバージョンでこのURLを確認してください。 – Dominique

+1

編集をロールバックした理由がわかりません。私はあなたの数式がVBAコードとして解析され、2行にまたがって書式設定が修正されました。 –

答えて

0

したがって、数式を短くする必要があります。

まず、シート名'[Jan_HC.xls]HC'が頻繁に表示されます。数式に別のワークブックやシートへの参照を含めることは本当に必要ですか?そうでない場合は削除してください。

同様に、範囲$AX$2:$AX$65536の文字を名前付きの範囲にすることで短縮することができます。名前はALLです。

これ以外の場合は、数式に複数のセルを使用し、各セルにパーツを配置してターゲットセルで完成させることができます。

EDIT:配列はちょうど1つの値、1または0

関連する問題