Ich habe in VBA eine Funktion erstellt die anhand einer Kontonummer in Spalte F die Bezeichnung aus Spalte G suchen soll. Sind mehrere Treffer vorhanden sollen die zusätzlichen Bezeichnungen angehängt werden.
Aus einem VBA-Sub aufgerufen funktioniert alles bestens.
Wenn ich diese Funktion in einem Tabellenblatt in Excel als "Formel" nutze bekomme ich die Fehlermeldung "91 - Objektvariable oder With-Blockvariable nicht festgelegt".
Hier mein Code:
Public Function get_neighbor_value(search_text As String, search_sheet As String, search_range _
As String, neighbor_column As String, Optional error_value As String) As String
Dim Zeile As Long
Dim c As Range
Dim Zellwert As String
On Error GoTo Fehler
With Worksheets(search_sheet).Range(search_range)
Zellwert = ""
Set c = .Find(search_text, LookIn:=xlValues, LookAt:=xlPart) 'Enthält Text
If Not c Is Nothing Then
firstAddress = c.Address
Do
Zeile = Val(c.Row)
Zellwert = Zellwert & " | " & Cells(Zeile, 6).Value
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address firstAddress
End If
End With
If c Is Nothing Then get_neighbor_value = ""
If c Is Nothing And error_value "" Then get_neighbor_value = error_value
get_neighbor_value = Zellwert
Exit Function
Fehler:
Application.ScreenUpdating = True
MsgBox ("Fehler in Parameter der Function 'get_neighbor_value'" & vbNewLine & "Fehlercode: " _
& Err.Number & vbNewLine & "Text: " & Err.Description & vbNewLine & "Quelle: " & Err.Source)
Err.Clear
End Function
Aus VBA heraus funktioniert alles:
Sub test2()
antwort = get_neighbor_value("467", "Tabelle1", "F:G", "G")
MsgBox (antwort)
End Sub
Was erzeugt den Fehler wenn ich die Funktion als Excel-Formel verwende ?
Danke!