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"
作为参考,这是在具有 8GB RAM 的 Windows 7 笔记本电脑上的 Excel 2010 中运行的 Excel VBA。不是怪物,但也不是懒人。