【问题标题】:Not enough memory resources are available to complete this operation没有足够的内存资源来完成此操作
【发布时间】:2020-01-09 02:27:30
【问题描述】:

场景

我有两个用户窗体,当我单击第一个用户窗体中的按钮时,将显示第二个用户窗体,然后卸载第一个用户窗体。

问题

点击第二个用户窗体中的listbox 时出现内存错误

我的userform2如下

错误如下

下面是userform2中的全部代码

Private Sub UserForm_Initialize()

        Dim reportWbi As Workbook
        Dim internal As Worksheet

        Set reportWbi = Workbooks.Add(reportFile)
        Set internal = reportWbi.Worksheets("Internal")
        internal.Select

        LastAddress = internal.Range("C" & Rows.Count).End(xlUp).Address
        ListBox2.RowSource = "C6:" & LastAddress

        reportWbi.Close savechanges:=False
        Set reportWbi = Nothing
        Set internal = Nothing
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    reportCreator.Show
End Sub

其实里面并没有太多的变量或东西。一一调试后发现,没有下面这几行,就没有内存错误

    reportWbi.Close savechanges:=False
    Set reportWbi = Nothing
    Set internal = Nothing

我给reportWbi.Close savechanges:=False的那一刻,它正在抛出内存错误。

请注意,我使用的是 Office 365 和 8Gb RAM。我不认为这会导致任何问题

有谁知道怎么回事?

编辑 1

我尝试将整个代码放入一个品牌 Excel 文件中,该文件只有一个用户窗体并且存在相同的内存错误。在我删除reportWbi.Close savechanges:=False 的那一刻,一切正常,没有任何错误

编辑 2

我删除了ListBox2.RowSource = "C6:" & LastAddress 代码,这次即使reportWbi.Close savechanges:=False 存在也没有错误

为什么会发生这种情况非常令人困惑。如果对此有任何了解,请有人帮忙

【问题讨论】:

  • 在指定路径中先尝试workbook.SaveAs。
  • 我就是这样做的。但是当我试图关闭该文件的那一刻,错误再次弹出
  • 只有当我点击列表框而不是加载用户表单时才会发生这种情况
  • 1.该列表框没有事件代码,所以我不知道它是如何导致问题的。 2. 尝试在reportCreator.Show 上设置一个断点,看看在关闭工作簿时是否调用了它。
  • @Nick.McDermaid 1. 对于这种情况,当我点击listbox 时也没有事件代码,它会抛出内存错误 2. 是的,它正在调用reportCreator userform

标签: excel vba out-of-memory


【解决方案1】:

经过一些试验,发现问题是由于ListBox2.RowSource = "C6:" & LastAddress 这个RowSource 属性引起的。我不知道为什么它会导致内存问题。我删除了它并使用以下其他循环方法填充Listbox2

        Range("C6").Select
        Do While ActiveCell.Value <> ""
            With ListBox2
                .AddItem ActiveCell.Value
            End With
            ActiveCell.Offset(1, 0).Select
        Loop

现在没有内存问题,一切正常

【讨论】:

    猜你喜欢
    • 2019-10-15
    • 2019-01-13
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2011-02-22
    相关资源
    最近更新 更多