2014-12-11 14 views
5

Ich habe ein Excel-Makro geschrieben, um mir bei der Arbeit Daten zu verarbeiten, und jetzt, wo ich den Code fertig geschrieben habe, bekomme ich Fehler, weil Microsoft Visual Basic ändert .Range zu .range . Wenn es das tut, erhalte ich einen Kompilierfehler, weil die Methode nicht existiert.VBA automatisch ändern .Range zu .range

Gibt es trotzdem, um das zu beheben? Gibt es eine Möglichkeit, mit .Range herumzukommen, wenn nicht? Solange mein Code von .Range zu .range geändert wird, werden hier Fehler angezeigt.

Gelöst: der Fehler wurde nicht in der Methode, sondern das Datenelement, das ihm vorausging.

+2

Die Tatsache, konvertieren '.range' in Kleinbuchstaben erscheint verursachen sollte keine Fehler kompilieren. Sie würden nur einen Fehler 438 erhalten, wenn Sie auf die Eigenschaft '.Range' eines Objekts verweisen, das sie nicht unterstützt. (VBA-Methoden und -Eigenschaften sind nicht case sensitive) – Rory

+0

Klicken Sie auf den Übeltäter ".range" und drücken Sie Umschalt + F2. Dies sollte Sie zu der Definition von Kleinbuchstaben "Bereich" –

+1

Verwenden Sie Option Explicit? –

Antwort

0

Wenn Sie häufig Wörter wie 'Bereich' verwenden, wird die Autokorrektur den Wert 'Bereich' in 'Bereich' ändern. Versuchen Sie, diese Methode manuell in "Range" zu ändern und stellen Sie sicher, dass Sie keine Variablen wie "range" haben.

4

EDIT: Die O.P. angegeben:

gelöst: der Fehler nicht bei dem Verfahren wurzelt aber das Datenelement, das ihr vorausging.

Allerdings können die damit verbundenen Fragen einer Kleinen Methode stammen aus einem variablen oder Routine zu schaffen, die Sie range und das System auf dieser Definition wird Fall Selbständerung genannt basiert. Sie sollten niemals eine Variable oder Routine mit dem gleichen Namen wie ein definierter Prozess wie Range() erstellen. Wie @RubberDuck erwähnt:

Dies ist ein Nebeneffekt der VB Groß- und Kleinschreibung und die IDE wird versuchen, „hilfreich“ zu sein.

+0

Ich würde nur hinzufügen, dass dies ein Nebeneffekt von VB ist Groß-und Kleinschreibung und die IDE versucht, "hilfreich" zu sein. – RubberDuck

+2

Ich habe gerade überprüft. Ich habe momentan keine benannte Reichweite. Ich hatte früher eine Variable namens ranger, aber sie wurde seitdem gelöscht. –

+0

Ich habe bemerkt, dass trotz der Entfernung der kleingeschriebenen Bereichsvariable, Vba wird weiterhin in den Kleinbuchstaben konvertieren, bis Sie wieder öffnen. –

7

Try Bereich als ein Bereich irgendwo im Code deklarieren (man beachte den Fall):

Dim Range As Range 

dann die Anweisung löschen.

, dass dies alle range-Range