2016-04-19 1 views
-2

Ich habe eine Excel-Datei, in der ein VBA-Makro Daten in ein Benutzerformular lädt.Warum muss das VBA-Editor-Fenster geöffnet sein, damit mein Makro funktioniert?

Das Makro stürzt nie ab, wenn ich zuerst den Visual Basic-Editor öffne (durch Klicken auf Developer -> Visual Basic), aber manchmal stürzt es ab und schließt Excel, wenn ich es ohne geöffneten Editor starte.

Es ist, als ob das Öffnen des VBA-Editors das Makro aktiviert und es ordnungsgemäß funktioniert.

Ich versuche herauszufinden, warum dies der Fall ist und wie ich meine Datei reparieren kann, damit ich den Editor nicht erst öffnen muss. Irgendwelche Ideen?

Edit: Ich verstehe nicht, warum ich downvoted bin.

Beispielcode aus dem Makro:

Public Sub LoadButton_Click() 

    'Policy Information 
    ZoneLatitudeTextBox.Text = Sheets("Saved Policy Values").Cells(2, 2) 
    ZoneLongitudeTextBox.Text = Sheets("Saved Policy Values").Cells(3, 2) 
    TownClassComboBox.Text = Sheets("Saved Policy Values").Cells(4, 2) 
+1

Ist das vbaproject-Passwort geschützt? – findwindow

+1

Es gibt absolut keinen Grund, dass das Öffnen des VBE die Funktionsweise des Makros beeinflusst. Ein plausiblerer Grund wäre, dass Sie einige unqualifizierte Aufrufe an Blätter und Zellen haben, die standardmäßig das 'ActiveWorkbook'-Objekt verwenden. Ohne all Ihren Code zu sehen, ist es unmöglich zu sagen. –

+0

Nein, es ist nicht passwortgeschützt. – offcenter35

Antwort

1

Dieser Thread hat mir die Antwort auf meine Frage:

http://www.xtremevbtalk.com/excel/229325-excel-crashes-unless-vba-editor.html

Anscheinend Excel in Probleme Speicher ausgeführt wird, wenn es eine Userform ist, die auch hat viele Kontrollen. Das Öffnen des VBA-Editors umgeht die Speicherprobleme und ermöglicht das ordnungsgemäße Ausführen des zugeordneten Makros.

Um diesen Prozess zu automatisieren, muss man einfach die folgenden Codezeilen zu Beginn des Makro hinzufügen:

Application.VBE.MainWindow.Visible = True
Application.VBE.MainWindow.Visible = Falsch

Verwandte Themen