我遇到了一个不寻常的问题。我有一个多页面的应用程序包含大约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倍以上的东西没有问题。你知道问题出在哪里,因为我真的不明白。
答案 0 :(得分:4)
你有
Do While i < 5
'stuff
Loop
我没有看到我在哪里更改值,以便程序退出循环。我错过了什么吗?