2017-06-22 9 views
0

Ich habe ein VBA-Makro in Excel, die für ein paar Tage gut funktionierte, aber heute, wenn ich starte, funktioniert es nicht mehr. Lustig ist, dass weder an der Excel-Datei noch am Makro Änderungen vorgenommen wurden.VBA Excel-Makro gestoppt, Textbox zu sehen

Das Makro ist an eine Schaltfläche angehängt und ruft Daten aus einer TextBox mit dem Namen CSVExportRange ab. Wenn ich versuche, es zu starten bekomme ich eine

Fehler in der Zeile „Objekt diese Eigenschaft oder diese Methode nicht unterstützt“, wo ich Bereich eingestellt basierend auf dem Wert des Textfeldes:

Dim r As Range 
Set r = Range(Application.ActiveSheet.CSVExportRange.Value) 

ich habe versucht, mit ihm zu experimentieren und es stellt sich heraus, dass es nicht die TextBox überhaupt jetzt sieht:

Dim a As Worksheet 
Dim k As TextBox 

Set a = Application.ActiveSheet 
Set k = Application.ActiveSheet.CSVExportRange 

Im obigen Fall bricht Debug in der letzten Zeile mit "Objekt unterstützt diese Eigenschaft oder Methode nicht" Fehler.

Ich habe die TextBox-Einrichtung ordnungsgemäß und änderte es seit dem letzten Mal nicht alles hat gut funktioniert.

screen

Was ist los?

+1

Der Screenshot zeigt 'CSVExportPath', nicht' CSVExportRange'. – GSerg

+0

Sie haben recht, ich muss Scroll auf Maus bewegt haben, wenn Sie den Bildschirm und die Auswahl geändert haben. CSVExportRange wird auf die gleiche Weise eingestellt (ich hätte einen neuen Screenshot hinzugefügt, aber ich kann meinen Beitrag nicht bearbeiten oder in den Kommentar hier einfügen). – ilozen

+0

Existiert der Wert von csvexportrange als Zeichenfolgenbereich (Beispiel: "$ a $ 1")? Und nicht leer? Wie bevölkern Sie csvexportrange? –

Antwort

0

Keine Ahnung, warum es passiert ist, aber Excel zweimal neu starten geholfen ... Wie, als ich alle Excel-Dateien geschlossen und neu gestartet, es funktionierte immer noch nicht. Nachdem es wieder getan wurde, fing es wieder an zu arbeiten.

Beachten Sie, dass weder ein Fern/network/freigegebene Datei so ist es nicht ein Fall von jemand/etwas anderes einige Sperren von Dateien ...

+0

Dann war wahrscheinlich vor dem Neustart das falsche Blatt das 'ActiveSheet'. Die Verwendung von 'ActiveSheet' erzeugt in den meisten Fällen seltsame Probleme, weil die Leute es falsch verwenden. Ich empfehle kaum, 'ActiveSheet' zu verwenden, sondern lege das Blatt immer exakt nach seinem Namen' Worksheets ("MySheetName") 'fest, so dass das Makro immer auf das richtige Blatt verweist, unabhängig davon, welches Blatt gerade aktiv ist. Siehe auch [VBA Best Practices: Vermeiden Sie die Verwendung von ActiveCell oder ActiveSheet in Excel] (https://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/7264/avoid-using-activecell-or-activesheet- In-Excel). –

Verwandte Themen