Forum des VBA-Tutorials

Funktion zerstört durch Variablennamen (VBA)

Bana, Montag, 27. Februar 2017, 17:02 (vor 292 Tagen)

Hallo zusammen,

habe ohne nachzudenken eine Variable mit dem Namen "left" bezeichnet. Seitdem funktioniert die Funktion Left(string; zeichenlänge) nicht mehr.

Das ganze befindet sich in einer Userform in einem Private Sub.

Wie bekomme ich die Funktion Left wieder funktionsfähig?

Vielen Dank im Voraus

Grüße
Bana

Funktion zerstört durch Variablennamen

Martin Asal, Montag, 27. Februar 2017, 18:49 (vor 292 Tagen) @ Bana

Indem du die Variable umbennenst, z. B. in "Links"?

Martin

Funktion zerstört durch Variablennamen

Bana, Montag, 27. Februar 2017, 20:34 (vor 292 Tagen) @ Martin Asal

Danke für den Hinweis. Das habe ich als allererstes gemacht. Leider ohne Erfolg. Eventuell habe ich irgendwo noch ein "left" übersehen, dass die Variable sozusagen nicht mehr frei gibt. Ich werde es morgen gleich mal prüfen.

Kann es sein, dass sich die Variable irgendwo im Hintergrund noch verankert hat?

Funktion zerstört durch Variablennamen

Bana, Dienstag, 28. Februar 2017, 08:09 (vor 292 Tagen) @ Bana

Aktuelles Resümee:

Ich kann, unabhängig von der gestrigen Datei, in keiner Datei mehr in einer Userform die Funktion "Left" anwenden. "Right" funktioniert im Gegensatz.

Selbst wenn ich ein leeres Excel Sheet aufrufe und eine neue Userform einfüge kann ich die Funktion "Left" nicht mehr benutzen.

Kennt jemand das Problem, bzw. noch besser die Lösung?

Funktion zerstört durch Variablennamen

Martin Asal, Dienstag, 28. Februar 2017, 13:16 (vor 292 Tagen) @ Bana

Dazu fällt mir auch erst mal nichts genaues ein.

  • Passiert das nur in einem UserForm, oder auch in anderen Modulen?
  • Wenn du auf "Extras/Verweise" gehst, was ist dort ausgewählt?

Martin

Funktion zerstört durch Variablennamen

Bana, Dienstag, 28. Februar 2017, 13:53 (vor 292 Tagen) @ Martin Asal

Hi Martin,

danke für deine Bemühungen!!

Im Modul funktioniert Left. Nur in der Userform funktioniert sie nicht. Ich glaube das Problem ist grundsätzlich, dass ich die Variable "left" nicht deklariert habe. Ich kann ihr einen Wert zuordnen, aber nicht auf "" setzen. Kann ich die Variable noch irgendwie löschen?


Bei Verweise ist folgendes mit Haken versehen:
- Visual Basic For Applications
- Microsoft Excel 15.0 Object Library
- OLE Automation
- Microsoft Office 15.0 Object Library
- Microsoft Forms 2.0 Object Libraty

Funktion zerstört durch Variablennamen

PhilS ⌂, Dienstag, 28. Februar 2017, 14:16 (vor 292 Tagen) @ Bana

Im Modul funktioniert Left. Nur in der Userform funktioniert sie nicht.

Kann es sein, dass du in dem Userform noch ein Steuerlement o.ä. ebenfalls Left genannt hast?

Da du Userforms verwendest, gehe ich davon aus, dass es sich nicht um ein Access-Projekt sondern Excel oder Word handelt. Korrekt? - In Access würde ich ein /decompile empfehlen.

Funktion zerstört durch Variablennamen

Bana, Dienstag, 28. Februar 2017, 14:51 (vor 292 Tagen) @ PhilS

Hi PhilS,

ja, richtig, es ist eine Excel-Datei. Das mit dem Steuerelement ist mir so nicht bewusst.

In der Bibliothek VBAProject gibt es aber bei Userform1 ein Element Namens Left. Dieses wird beschrieben als "Property Left As Single - Element von Unknown1._Form".
Es heißt aber stets, Sprung zu left nicht möglich, da verborgen, bzw. Sprung zu Unknown1 nicht möglich, da in Bibliothek Unknown1 enthalten, auf die zur Zeit nicht verwiesen wird.

Funktion zerstört durch Variablennamen

Martin Asal, Dienstag, 28. Februar 2017, 17:23 (vor 291 Tagen) @ Bana

In der Bibliothek VBAProject gibt es aber bei Userform1 ein Element Namens Left. Dieses wird beschrieben als "Property Left As Single - Element von Unknown1._Form".
Es heißt aber stets, Sprung zu left nicht möglich, da verborgen, bzw. Sprung zu Unknown1 nicht möglich, da in Bibliothek Unknown1 enthalten, auf die zur Zeit nicht verwiesen wird.

Ich konnte das gerade nachvollziehen: Ein Userform angelegt, und in eine beliebige. Prozedur Dim Left As String geschrieben. Das genügt.

Du hast also noch irgendwo eine Variablendeklaration. Schreibe doch mal im Code der Form "Left", mache einen Rechtsklick darauf, und wähle "Definition".

Martin

Funktion zerstört durch Variablennamen

Bana, Mittwoch, 01. März 2017, 08:33 (vor 291 Tagen) @ Martin Asal

Hi Martin,

wenn ich mit Rechtsklick auf Definition gehe kommt folgende Fehlermeldung:
Sprung zu left nicht möglich, da verborgen.

In der Bibliothek VBAProject gibt es aber bei Userform1 ein Element Namens Left. Es hat ein graues Symbol mit einer grauen Hand. Dieses wird beschrieben als "Property Left As Single - Element von Unknown1._Form".
Drücke ich hier auf Unknown1 heißt es, Sprung zu Unknown1 nicht möglich, da in Bibliothek Unknown1 enthalten, auf die zur Zeit nicht verwiesen wird.

Funktion zerstört durch Variablennamen

Martin Asal, Mittwoch, 01. März 2017, 10:01 (vor 291 Tagen) @ Bana

Du sagtest doch, du hättest eine STRINGvariable namens Left deklariert?

Das, was du beschreibst, ist die normale Left-Eigenschaft eines Formulars. Das gehört so. Wäre es eine von dir deklarierte Variable, wäre sie im Objektkatalog außerdem Fett geschrieben.

Martin

Funktion zerstört durch Variablennamen

Bana, Mittwoch, 01. März 2017, 10:12 (vor 291 Tagen) @ Martin Asal

Hi Martin,

ich glaube das Problem ist, dass ich die Variable leider nicht deklariert hab. Als Resultat habe ich nun das Häkchen gesetzt, dass ohne Deklaration keine Variable gesetzt wird...

Fett geschrieben ist das "Left" nicht. Kann ich die nicht deklarierte Left Variable irgendwie entfernen?

Funktion zerstört durch Variablennamen

Martin Asal, Mittwoch, 01. März 2017, 10:24 (vor 291 Tagen) @ Bana

Hach, dass diesse Excelianer immer mit undeklarierten Variablen arbeiten müssen... Bringt nur Probleme. Und selbst wenn, immer dieses Variant :-(

Mit Haken meinst du unter "Extras/Optionen"? Das bewirkt AFAIK erst mal noch gar nichts. Erst, wenn du ein neues Modul erzeugst, steht in diesem dann "Option Explicit". Und auch das bewirkt erst beim nächsten Kompilieren etwas. Hast du überhaupt schon mal gezielt kompiliert? Am Besten erst mal ohne "Option Explicit", dann mit. Beim Zweiten bekommst du Fehlermeldungen für jede nicht deklarierte Variable.

Martin

Funktion zerstört durch Variablennamen

Bana, Mittwoch, 01. März 2017, 14:33 (vor 291 Tagen) @ Martin Asal

Hach, dass diesse Excelianer immer mit undeklarierten Variablen arbeiten müssen... Bringt nur Probleme. Und selbst wenn, immer dieses Variant :-(

Genau deswegen ist da in Zukunft der Haken :)

Mit Haken meinst du unter "Extras/Optionen"? Das bewirkt AFAIK erst mal noch gar nichts. Erst, wenn du ein neues Modul erzeugst, steht in diesem dann "Option Explicit". Und auch das bewirkt erst beim nächsten Kompilieren etwas. Hast du überhaupt schon mal gezielt kompiliert? Am Besten erst mal ohne "Option Explicit", dann mit. Beim Zweiten bekommst du Fehlermeldungen für jede nicht deklarierte Variable.

Martin

Beim Kompilieren bekomme ich leider in keinem Fall eine Fehlermeldung.

In der Bibliothek VBAProject gibt es aber bei Userform1 ein Element Namens Left. Es hat ein graues Symbol mit einer grauen Hand. Dieses wird beschrieben als "Property Left As Single - Element von Unknown1._Form".

Gehe ich bei Right auf Definition, so ist das Symbol grün und es befindet sich bei Elemente von String.
Bei Userform1 gibt es auch kein Element Namens Right...

Funktion zerstört durch Variablennamen

Martin Asal, Mittwoch, 01. März 2017, 15:10 (vor 291 Tagen) @ Bana

Ein Userform hat die Eigenschaften Top, Left, Width und Height. Damit wird Position und Größe des Forms definiert.

Dann gibt es in der VBA-Bibliothek selbst Funktionen wie Left und Right. Right hast du gerade gefunden, und in der gleichen Liste mus auch Left stehen, als Element von VBA.Strings.

Wie schon mal gesagt, wähle mal "Extras/Verweise" und poste hier, was dort ausgewählt ist - und zwar in genau der gleichen Reihenfolge.

Bzw, besteht das Problem überhaupt noch?

Martin

Funktion zerstört durch Variablennamen

Bana, Mittwoch, 01. März 2017, 16:13 (vor 291 Tagen) @ Martin Asal

Hi Martin,

nun funktioniert es!! Ich kann es nicht genau nachvollziehen, evtl. wegen dem Kompilieren!?

Herzlichen Dank!!!

Viele Grüße
Bana

RSS-Feed dieser Diskussion
powered by my little forum