2016-07-28 6 views
1

Manchmal finden Sie bei der Entwicklung, dass typische Eigenschaftsnamen in Kleinbuchstaben angezeigt werden.VBA-Objekteigenschaften werden in Kleinbuchstaben angezeigt

TempVars.Item("abc") 

Könnte so aussehen.

TempVars.item("abc") 

Oder

tbxMyTextbox.Value 

zeigt sich als

tbxMyTextbox.value 

Die Frage ist, warum geschieht dies und wie behebe Sie es?

Antwort

4

Ich habe mir diese Frage mehrmals gestellt und gesehen, wie andere sie in SO und anderswo fragen. In den meisten Fällen kommt die Frage auf, wenn nach anderen Codierungsfehlern gesucht wird. Manchmal fragt sich der Entwickler (mich auch), ob etwas falsch ist, dass sie fehlen, was dieses Kleinbuchstabe verursacht.

Vor einer Weile lief ich über eine Antwort (Ich füge die Originalreferenz hinzu, wenn ich wieder darüber stolpere), die am sinnvollsten und tatsächlich erlaubt mir dieses nagende Problem zu korrigieren.

Scheinbar passiert es, wenn Sie eine Variable in Kleinbuchstaben verwenden, deren Name mit einer Eigenschaft übereinstimmt.

So

Dim value as string 

führt in

myObject.Value 

erscheinen als

myObject.value 

Lösung?

Da VBE offensichtlich diese Variable über die gesamte IDE betrachtet - scheinbar ohne Berücksichtigung des Umfangs; Der Weg zurück zum richtigen Fall ist vorübergehend erstellen Sie die Variable in Großbuchstaben und vermeiden Sie die Benennung von Variablen mit dem gleichen Namen wie bestehende Eigenschaften in Ihrer Anwendung.

So ist die Lösung für das Problem .value/.Value oben wäre vorübergehend die Linie

Dim Value as string 

in einem Modul innerhalb der App enthalten. Führen Sie den Code aus, der diese Zeile enthält.

Danach entfernen Sie diese temporäre Codezeile.

Dann, wie gehofft, .value Eigenschaften erscheinen wieder als .Value und nicht .value.

Natürlich sollten wir diese reservierten Worte in erster Linie vermeiden, aber wenn das irgendwann nicht getan wurde, sollte das obige das Problem beheben.

Hier sind einige reserviertes Wort Links:

Dank @ScottCraner für den Schubs über reservierte Wörter zu vermeiden.

+2

Der eigentliche Fix wäre, die Variable zu finden und den Namen in einen zu ändern, der kein reservierter Name in VBA ist. Vermeiden Sie deshalb Verwirrung darüber, auf welchen "Wert" Sie sich beziehen. –

+0

@ScottCraner das ist definitiv wahr, aber manchmal Leute diesen Punkt verpassen. Ich füge das in die obige Lösung zusammen mit einer Verbindung zu den reservierten Wörtern hinzu. – NWdev

+0

In einigen Fällen können Sie einfach die Zeile mit dem gewünschten Fall eingeben, z. 'Dim-Wert als String' und die IDE reagiert darauf, indem sie die Groß- und Kleinschreibung der Eigenschaft richtig anpasst - auch ohne den Code auszuführen. – NWdev

Verwandte Themen