Range definieren und in Function übernehmen

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von JulesM.

    Range definieren und in Function übernehmen

    Hallo liebe Forengemeinde,
    ich habe eine recht simple Frage.
    Ich habe eine Range die in etwa so aussieht:

    Visual Basic-Quellcode

    1. rng = Sheets("Result").Range(Cells(2, 5), Cells(Lastrow, 26))



    Nun möchte ich dies so definieren, dass rng in eine Function übernommen wird.
    In dieser Function soll eine bedingte Formatierung auf diese rng angewendet werden. Sprich

    Visual Basic-Quellcode

    1. With rng .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .FormatConditions.Delete ...



    Meine Frage ist nun: wie muss rng am anfang des Sub dekliniert werden? Dim rng as Range?
    Wie muss die Function dann aussehen, damit diese rng einwandfrei übernommen werden kann?
    Ich habe schon einige Varianten probiert, aber es springt immer wieder der Debugger an.

    Vielen Dank für eure Hilfe.
    Ja, danke. Ich habe am Beginn des Subs rng as Range dekliniert.
    Aber irgendwie klappt es mit:

    Visual Basic-Quellcode

    1. Set rng = Sheets("Result").Range(Cells(2, 5), Cells(Lastrow, 26))



    bzw

    Visual Basic-Quellcode

    1. rng = Sheets("Result").Range(Cells(2, 5), Cells(Lastrow, 26))



    nicht. Der Debugger geht an und meldet Application-defined or object-defined error.


    Edit: Habe in der Suchfunktion Hilfe gefunden und mit:

    With Worksheets("Result")
    Set rng = .Range(.Cells(2, 5), .Cells(Lastrow, 26))
    End With

    das Problem lösen können.
    Leider bleibt der Debugger nun bei

    Visual Basic-Quellcode

    1. ConditionalFormatting (rng)



    hängen, wobei

    Visual Basic-Quellcode

    1. Function ConditionalFormatting(ByVal rng As Range) With rng .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .FormatConditions.Delete

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „JulesM“ ()

    Ja, LastRow hat eine gültigen Wert.

    Gute Nachricht: Es funktioniert nun. Ich habe dummerweise
    ConditionalFormatting (rng) geschrieben. Richtigerweise heisst es jedoch ConditionalFormatting rng

    keine Ahnung was mich da geritten hat :)
    Vielen Dank an alle für die Hilfe :)