Öffnen von UserForm aus userform über und über - Ursachen-Objekt-Probleme

Ich derzeit haben ein eingebautes tool in Excel 2003, die zeigt eine Reihe von Formularen zur Dateneingabe. Der client angefordert hat, dass es "Bisherigen Form" und "Weiter Bilden" - buttons auf den Formularen.

Den code verwendet, um zwischen den Formen ist wie folgt

Sub NextForm(strFormName As String)
    Dim intCurPos As Integer
    Dim strNewForm As String

    'Find out which form we are currently on from a list in a range
    intCurPos = WorksheetFunction.Match(strFormName, Range("SYS.formlist"), 0)
    If intCurPos = WorksheetFunction.CountA(Range("SYS.formlist")) Then
        'We want to use the first one
        intCurPos = 0
    End If

    'Get the name of the form to open
    strNewForm = WorksheetFunction.Index(Range("SYS.formlist"), intCurPos + 1)
    'Load the form into the Userforms Collection
    Set newForm = VBA.UserForms.Add(strNewForm)
    'Show the form
    newForm.Show
End Sub

Das Problem, das ich habe, ist, dass nachdem Sie dies 25-mal (jaja ich weiß) das system stürzt ab. Mir ist klar, dass dies ist, weil jedes mal, wenn Sie bekommen, um die newForm.Show line oben den code nicht bekommen, komplett und so sitzt im Speicher.

Nicht-modale Formulare aufhören würde zu diesem Thema aber dann könnte der Benutzer laden Sie andere Formen und andere Dinge zu tun, die würden große Probleme entstehen.

Hat jemand irgendwelche Vorschläge haben, um zu helfen mit diesem? Irgendwie zu zwingen, die Ausführung von code, aber nicht aufhören, den modal Fähigkeit des Formulars?

Long shot, aber jede Hilfe dankbar.

Sie haben, um alle 25 Formulare öffnen? Haben Sie versucht, entladen Sie ein Formular, und öffnen Sie dann das nächste?
Haben Sie sich überlegt mit dem Multiseiten-Steuerelement auf deiner userform, d.h. laden einer userform und verwenden Sie Weiter und Zurück zum Blättern durch die Registerkarten auf dem Multiseiten -...
Jede form entlädt, bevor der nächste geöffnet wird. Jedoch ist der code, der Punkt, an dem die Verarbeitung beendet für die Form 1 bleibt im Speicher, und so weiter für die anderen 24. Es ist nur, wenn das Letzte Formular geschlossen wird, Excel geht zurück, um den code auszuführen (in diesem Fall ist nur ein Exit Sub).
Wir waren mit diesem. Wir waren zwei Formen (es gibt zwei Sätze von separaten Daten -) aber es waren zu viele Kontrollen, Excel das laden der Formulare. Die eine form war die 161 Felder x 10 steuert. Der andere war 95 x 10 steuert. Excel hatte einen Spieß, so dass wir aufgeteilt in fünf Formen. Wir tatsächlich verwenden Sie ein multiseiten-Steuerelement auf jede dieser Formen. Es sind 32 Seiten, die in Summe über die fünf Formen.

InformationsquelleAutor Nick Perkins | 2010-12-09

Schreibe einen Kommentar