ich habe einen Fehler, den ich leider überhaupt nicht nachvollziehen kann. Unten habe ich einen vereinfachten Codeausschnitt aus einer Userform meiner VBA-Anwendung hinzugefügt. Das Problem dabei ist folgendes:
Mein Excelsheet hat mehrere Button, jeder Button ruft eine andere Userform auf. In jeder
Userform nutze ich die Variable rngfound lokal, sie ist im gesamten Projekt nicht global _ definiert. Wenn ich nun die problematische Userform öffne (in den anderen beiden funktioniert es) werden in der Sub Userform_initialize() die Einträge in die Combobox geladen. Beim Klick auf OK erscheint dann folgender Fehler:
Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt.
Das Merkwürdige ist: Wenn ich die lokale Variable rngfound umbenenne (z.B. in rngfound1), läuft das Programm problemlos durch. In der MsgBox wird auch der korrekte Wert angezeigt.
Irgendwo muss es ein Problem mit diesem Variablennamen geben, aber ich hab mittlerweile keine Idee mehr, woran es liegen könnte. Ich hoffe, mir kann jemand von euch einen guten Tipp geben. Ich könnte natürlich einfach die Variable umbenennen, aber ich würde gerne verstehen, woran es liegt. Falls es ein dämlicher Fehler ist, entschuldige ich mich schon mal im Vorfeld ;). Aber ich bin mit meinem Latein am Ende. Vielen Dank schon mal für die Hilfe!
Private Sub CommandButtonOK_Click()
Dim arrMitgl() As String
Dim strMitgl As String
Dim rngfound As Range
Application.ScreenUpdating = False
Worksheets("Mitglieder").Columns("A:A").Hidden = False
arrMitgl = Split(UserFormEdit1.ComboBoxMitglied.Value, ", ")
strMitgl = arrMitgl(1) & "." & arrMitgl(0)
Set rngfound = Worksheets("Mitglieder").Columns("A:A").Find(what:=strMitgl, LookIn:= _
xlValues)
Worksheets("Mitglieder").Columns("A:A").Hidden = True
Application.ScreenUpdating = True
MsgBox (rngfound.Row)
End Sub