内存不足,无法完成此操作

时间:2011-07-31 16:17:34

标签: excel vba excel-vba

我遇到了一个不寻常的问题。我有一个多页面的应用程序包含大约10页,每页包含另一页3-5页的多页。问题是应用程序太“沉重”,我想把它分成多种形式(每个页面的一个表单)。 在最初的应用程序中,表格按照我说的大约10页,每页上有另外3-5页,每页上有大约3-20个组合框,4-40个文本框。所有这些都是在初始化时通过执行一段代码加载的。 现在......我为每个页面复制了一段代码,并将其添加到替换它的表单的初始化中。 代码是这样的:

Private Sub UserForm_Initialize()
Dim i As Integer
Dim ws1 As Worksheet
Dim pagini As range
Set ws1 = Worksheets("Config")
Dim cControl As Control
Set cControl = Me.Controls.Add("Forms.Multipage.1", "oly", True)
    With cControl
        .Width = 650
        .Height = 380
        .Top = 0
        .Left = 0
    End With
Me.Controls("oly").Pages.Remove (Page1)
Me.Controls("oly").Pages.Remove (Page2)
    For Each pagini In ws1.range("pagoly")
        Me.Controls("oly").Pages.Add (pagini)
    Next pagini
i = 0
Do While i < 5
    Set cControl = Me!oly.Pages(i).Add("Forms.Frame.1", "iooly" & i, True)
        With cControl
            .Caption = "IO"
            .Width = 210
            .Height = 340
            .Top = 2
            .Left = 5
        End With
    Set cControl = Me!oly.Pages(i).Add("Forms.Frame.1", "niooly" & i, True)
        With cControl
            .Caption = "nIO"
            .Width = 210
            .Height = 340
            .Top = 2
            .Left = 220
        End With
    Set cControl = Me!oly.Pages(i).Add("Forms.Frame.1", "descriere" & i, True)
        With cControl
            .Caption = "Descriere"
            .Width = 210
            .Height = 340
            .Top = 2
            .Left = 435
        End With
Loop
End Sub

到目前为止,它只是在此表单的5个页面中添加了帧。问题是当我想运行它时,我得到“没有足够的内存可用于完成此操作”而我真的不知道为什么。然而在以前的版本中加载了50倍以上的东西没有问题。你知道问题出在哪里,因为我真的不明白。

1 个答案:

答案 0 :(得分:4)

你有

Do While i < 5
    'stuff
Loop

我没有看到我在哪里更改值,以便程序退出循环。我错过了什么吗?