Mit meiner Funktion FindValue will ich in der Tabelle "Abfrage" Daten aus Tabelle "Quelle" ü _
bernehmen. Interessanterweise funktioniert das nur auf Zeile 6 (wo das erste Argument der _ Funktion 1 ist). Bei den Zeilen 7-9 (Argumente 2, 3, 4) klappt das nicht.
Function FindValue(iNr As Integer, strSheet As String, lngCol As Long, _
lngColOut As Long, strFind As String) As Variant
Dim lRow As Long, rngData As Range, oFinde As Object, sErsteAdresse As String, i As Long
With ThisWorkbook.Sheets(strSheet)
lRow = .Cells(.Rows.Count, lngCol).End(xlUp).Row
With .Range(.Cells(1, 5), .Cells(lRow, 5))
Set oFinde = .Find(strFind, LookIn:=xlValues, lookat:=xlWhole)
If Not oFinde Is Nothing Then
sErsteAdresse = oFinde.Address
Do
i = i + 1
With oFinde.Offset(0, lngColOut - lngCol)
If i = iNr Then FindValue = .Value: Exit Function
End With
Set oFinde = .FindNext(oFinde)
Loop While Not oFinde Is Nothing And oFinde.Address sErsteAdresse
End If
End With
End With
End Function
Wenn ich allerdings die Funktion über einen
Sub via MsgBox aufrufe, erhalte ich überall die richtigen Ergebnisse (vgl. Modul 1 - Sub_Test).
Was muss am Code geändert werden, damit die Funktion auch in der Tabelle aufgerufen werden kann? _
_
_
Leider konnte ich die Beispieldatei nicht auf das Forum hochladen, obschon ich diese unter C:\ _
_
_
Beispiel.xlsm gespeichert habe.
Deshalb habe ich sie hier zur Verfügung gestellt.
https://1drv.ms/x/s! _
Akz9W19mecwNg5VigvreztlDCKAyYQ?e=rPJeKZ
Gruss, Peter