2016-12-04 7 views
0

フォームを開くExcelシートを作成しましたが、何らかのオブジェクト制限が発生したようです。私はこれを言います。なぜなら、他のコードを変更しなくても、もう少しテキストボックスを追加すれば、もはや開くことができず、コンパイルエラーが発生します。Excelフォームオブジェクトの上限?コンパイルエラーメモリ不足

私は、「set object = nothing」を使用するようにアドバイスが与えられているメモリ不足について、複数の投稿を見てきました。しかし、私はすべてのグローバルオブジェクトを使用していないので、私の場合に役立つとは思わない、すべての私のpvtのサブ変数は整数、バイト、または通貨です。私が理解しているように、すべてのプライベートディメンションは、関数の最後にVBAガベージコレクタによって終了される必要があります。

私のフォーム1をエクスポートし、UserForm1.frxを4,143KB、UserForm1.frmを140KBとして表示します。

私は実際にいくつかのキャップをヒットしましたか?それをどのように確認できますか? これはメモリの上限として表示されるため、Excelをより多く活用する方法はありますか? 私がキャップをしている場合、ビジュアルスタジオのプロフェッショナルは、フォームのExcelより高いキャップを持っていますか?

+0

このようなエラーは、「オブジェクトの制限を打つ」メモリによるもので、より多くの細部を持たずに問題を把握することも困難であることを考えるのは難しいです。メモリを無制限に増やすコードや、Excelを再インストールする必要があるかもしれない悪いインストールのバグがあります。 –

+0

140KBは、1つのフォームモジュール用の***トン***のコードです。それは何行のコードですか?フォームにいくつのコントロールがありますか? – Comintern

+0

3429行コントロールをチェックする方法がわからない、私はそのインストールを考えていない、私は新しいオブジェクトを追加するときにのみ問題があります。もちろん私のプログラミングではエラーになる可能性がありますが、それ自体は拡張していないようです。私はただの壁だけを持っています。 – ClaytonCross

答えて

0

デフォルトではExcelは32ビットで、メモリの上限は2ギガバイトですが、Excel 2016 64ビットとしてアンインストールして再インストールすると、仮想メモリの使用量が最大8テラバイトに増加します。これにより、どんなプログラムでもあまり広く使われることはありませんが、あなたはもっと大きなプログラムを作ることができます!それは私が必要としていた修正でした。ここで

が私を導いたソースです: http://www.decisionmodels.com/memlimitsc.htm

+0

私はまたフォームを複数のフォームに分割し、Excelシート上で日付を共有して別々にロードしました – ClaytonCross