Új hozzászólás Aktív témák

  • bsh

    őstag

    Üdv.
    Próbálnék egy olyat megoldani, hogy egy bazihosszú képlet helyett egy rövidebb saját függvényt használni, ami ugyanazt csinálná. Így még pár extra egyszerűsítést is bele tudnék mókolni.
    Application.Caller-rel megpróbálnám kiolvasni, hogy hányadik sorból hívódik a képlet (így nem kéne megadni paraméternek semmit)
    De random módon olyan hibákat csinál, hogy pl. azt mondja, hogy "Application.WorksheetFunction osztály Match tulajdonsága nem érhető el" (miközben watch szerint elérhető) meg ilyenek...
    Ez az Application.Caller-t nem ismerem, gondolom ezzel kell valamit trükközni? Mert magában a funkcióm az működik.

    Public Function KKERES() As Double
    KKERES = 0
    If TypeOf Application.Caller Is Range Then
    Dim Caller As Range
    Set Caller = Application.Caller
    Dim Z As String
    Z = Munka2.Cells(Caller.Row, 2).Text
    If Z <> "" Then
    On Error GoTo notfound
    X = Caller.Application.WorksheetFunction.Match(Z, Munka3.Range("B:B"), 0)
    If IsError(X) Then
    Y = Caller.Application.WorksheetFunction.Match(Z, Munka4.Range("B:B"), 0)
    If IsError(Y) Then Y = Caller.Application.WorksheetFunction.Match(Z, Munka4.Range("C:C"), 0)
    If IsError(Y) Then
    On Error GoTo 0
    KKERES = 0
    Exit Function
    Else
    On Error GoTo 0
    If Caller.Column = 5 Then
    KKERES = Munka4.Cells(Y, 5).Value
    Exit Function
    End If
    If Caller.Column = 6 Then
    KKERES = Munka4.Cells(Y, 6).Value
    Exit Function
    End If
    End If
    Else
    On Error GoTo 0
    If Caller.Column = 5 Then
    KKERES = Munka3.Cells(X, 5).Value
    Exit Function
    End If
    If Caller.Column = 6 Then
    KKERES = Munka3.Cells(X, 6).Value
    Exit Function
    End If
    End If
    End If
    End If
    notfound:
    End Function

Új hozzászólás Aktív témák