relative Bezüge mit benannten Ausdrücken verwenden

    From The Document Foundation Wiki
    < Macros‎ | Calc
    This page is a translated version of the page Macros/Calc/ba020 and the translation is 100% complete.


    Other languages:

    Zusammenfassung

    Diese Seite zeigt ein LibreOffice Basic Makro, das die Verwendung relativer Bezüge mit benannten Ausdrücken illustriert. Es ist ein Beispiel aus Kapitel 13 ("Calc als Datenbank") aus dem Calc 7.0 Handbuch.

    Beschreibung

    Wenn ein bennanter Bereich Zellbezüge verwendet, die nicht absolut sind, dann werden diese Bezüge relativ zur Basis Adresse des Bereiches referenziert, die mit dem dritten Argument der Methode addNewByName, der Position, definiert wird. Dieses Verhalten wird im untenstehenden Code gezeigt. Hier erzeugt das Makro AddNamedFunction den benannten Bereich AddLeft. Dieser Ausdruck referenziert die Gleichung A3+B3 mit C3 als seine Basisadresse. Da relative Zellbezüge AddLeft verwenden, wird die Summe der Werte der zwei Zellen direkt nach links jeder Zelle, die die Formel =AddLeft enthält aufsummieren. Z. Bsp., wenn AddLeft in der Zelle E5 steht, wird sie dien Zellen C5 und D5 aufsummieren (siehe verlinktes Tabellenblatt).

    Tip.svg

    Tipp:
    Dieser Code zeigt ein anderes wenig bekanntes Merkmal von Calc: benannte Bereiche sind eine Untermenge von benannten Ausdrücken, die auch Formeln enthalten können.

    Code

    Sub AddNamedFunction()
      Dim oSheet          'Tabellenblatt, das den Bereich oRange enthält
      Dim oCellAddress    'Adresse für relative Zellbezüge
      Dim oRanges         'Die Eigenschaft NamedRanges
      Dim oRange          'Zellberich mit einer Zelle
      Dim sName As String 'Name der zu erstellenden Gleichung
    
      sName = "AddLeft"
      oRanges = ThisComponent.NamedRanges
      If NOT oRanges.hasByName(sName) Then
        oSheet = ThisComponent.getSheets().getByIndex(0)
        oRange = oSheet.getCellRangeByName("C3")
        oCellAddress = oRange.getCellAddress()
        oRanges.addNewByName(sName, "A3+B3", oCellAddress, 0)
      End If
    End Sub

    Dieses Calc Tabellenblatt enthält den obigen LibreOffice Basic Code.