Ich bin neu in VBA, also lerne ich. Ich habe Mühe zu verstehen, warum dies in Excel 2016 scheitert und meine Forschung ist leer. Ich habe den folgenden Codevba: Variable nicht definiert in activeCell
Option Explicit
Sub Range_End_Method()
Dim lRow As Long
Dim lCol As Long
Dim i As Integer
Dim rng As Range
Set rng = ActiveCell
lRow = Cells(Rows.Count, 1).End(xlUp).Row
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
Do While rng.Value <> Empty
If InStr(rng.Value, "Petrol") = 0 Then
currentRow = ActiveCell.Row
Worksheets("MySheet").Cells(currentRow, 5) = "Shopping"
Set rng = rng.Offset(1)
rng.Select
Else
currentRow = ActiveCell.Row
Worksheets("MySheet").Cells(currentRow, 9) = "Not Found"
Set rng = rng.Offset(1)
rng.Select
End If
Loop
End Sub
Wenn ich den VBA-Editor öffnen und geben Sie diese in eine „Microsoft Excel-Objekte“ Blatt Ich habe keinen Fehler. Aber wenn ich laufe als „Module“ Benennung meines Modul als „m_End“ Ich erhalte eine Fehlermeldung geworfen sagen
Compile Error
Variable not defined
Die Variablen es in VBA-Editor hebt sind „currentRow“ von der Linie in der ersten „Wenn Bedingung ":
currentRow = ActiveCell.Row
Ich verstehe nicht, was der Unterschied ist und wie man den Fehler beheben kann.
Jede Hilfe wäre willkommen.
Sie fehlen eine *** Sub *** -Anweisung am Anfang Ihres Codes. –
Am Anfang Ihres Codes sollten Sie 'Option Explicit' gefolgt von' Sub yourSubName() 'haben. In diesem Fall deklariert man 'currentRow' nie als Variable. Wenn Sie zu Beginn nicht 'Option Explicit' haben, gehen Sie zu' Extras ► Optionen ► Editor ► Code-Einstellungen' und wählen Sie 'Variablendeklaration anfordern'. Dadurch sparen Sie viel Zeit in der Zukunft. Vielleicht hatten Sie in Ihrem Blattmodul nicht die Option Explicit. –
Entschuldigung, ich habe gerade meinen Code bearbeitet - ich habe versehentlich vergessen, die Option und die Unteranweisungen zu kopieren. Sie waren auch beim Ausführen des Codes dabei. Das gab immer noch den gleichen Fehler. Wie soll ich die Variable deklarieren? Danke – Dan