VBA サブルーチンにアクセスできるスタックのサイズにメモリ制限はありますか?
何らかの奇妙な理由で、変数をDim
6 つ以上Range
使用すると、スタックに空きがないというエラーが表示されます。
Range
特に私が使用している連続していない大きなものはメモリを大量に消費していることがわかりますが、エラーを回避するためのベストプラクティスがあるかどうか知りたいです。
例:
Dim RR As Range
'Dim TestArea As Range
'Dim foremenList As Range
'Dim workerList As Range
'Dim workers As Range
'Dim Foremen As Range
Dim i As Integer
Dim R As Range
Dim EmplList(0 To 100) As Variant
'Set TestArea = Sheet90.Range("b4:q8, b15:q19, b26:q30")
'Set foremenList = Sheet90.Range("V24:V30")
Set RR = Sheet90.Range("v24:x45")
i = 0
これらの宣言のコメントを外すと、エラーが発生します。コメントしたままにしておくと、コメントしません。
サブ内の唯一の他のコードは次のとおりです。
For Each R In RR.Cells
If Len(R.Value) > 0 Then
'EmplList(i) = R.Value
i = i + 1
End If
Next R
Sheet90.Range("b40").Value = "Test3"
参考までに、これは 8 GB の RAM を搭載した Windows 7 ラップトップの Excel 2010 で実行されている Excel VBA です。モンスターではありませんが、前かがみでもありません。