Excel有时会抛出以下错误:
运行时错误'-2147024882(8007000e)':
无法设置Rowsource属性。没有足够的存储空间来完成此操作。
在.ListBox.RowSource = ""
指令上。
Private Sub reset_listbox_proposition_UF4()
With UserForm_4_RADIATEURS
With .ListBox_propositions
.RowSource = "" '<---- HERE !!
.Clear
.BackColor = couleur_Gris
.ColumnHeads = False
End With
End With
End sub
此子项经常使用,但在特定的事件序列之后只会偶尔崩溃一次。我设法重现了这个错误并注意到:
.RowSource
已设置并指向现有工作表更奇怪的是:
.Clear
),该指令也将失败.RowSource = ""
(尝试.Clear
后),它会成功!我不知道为什么它失败了,而且为什么只有一次偶尔和/或一些序列之后。有什么想法吗?
备注
XLAM Add-In
。.RowSource = ""
和.Clear
,因为可以使用.RowSource = "Liste_propositions!A2:S" & nb_X
或.List = Array_Propositions
设置ListBox。看起来Excel对此并不满意...... 编辑:可用于Excel的内存
我使用这个基本子进行了一些测试并递增了X:
Dim myArray() As Double
ReDim myArray(20000, X)
我让Excel使用超过2,300,000K的工作集内存(X = 13400)。
所以我会说内存/ RAM不足并不是我的宏中的问题,因为它会在Excel使用不到300,000K时抛出错误。
答案 0 :(得分:1)
如果Excel的当前值指向已删除的.Rowsource
,则Excel似乎无法更新Worksheet
属性:
看起来问题来自.Rowsource
中引用的工作表已在.Rowsource=""
之前删除。事实上,我只需删除此Ws
即可重现“运行时错误......存储空间不够...... ”。
此外,在此宏中,引用的Worksheet
被删除,但也在.Rowsource=""
指令之前重新创建(这对查找问题没有帮助)。
=&GT;虽然.Rowsource
属性是使用Ws.Name
设置的,但Excel似乎对.Codename
使用了严格的引用(Ws
?)。
修改强> 如果删除了Rowsource中引用的工作表,即使我立即重新创建相同的工作表,也会在新工作簿/ userform上运行另外的测试,确认列表框将不再有效。