Macros/Calc/ba020/es

    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:

    Resumen:

    Esta página proporciona un procedimiento de macro de LibreOffice Basic que ilustra el uso de referencias relativas con expresiones nombradas. Es un ejemplo extraído del Capítulo 13 ("Calc como base de datos") de la Guía de Calc 7.0.

    Descripción

    Si un intervalo con nombre usa direcciones de celda que no son absolutas, estas direcciones se referenciarán en relación con la dirección base del intervalo, que está definida por el tercer argumento del método addNewByName, Posición. Este comportamiento se ilustra en el siguiente código, donde la macro AddNamedFunction crea la expresión nombrada AddLeft. Esta expresión hace referencia a la ecuación A3+B3 con C3 como su dirección base. Debido a que se utilizan referencias relativas, AddLeft suma los valores de las dos celdas directamente a la izquierda de cualquier celda que contenga la fórmula "=AddLeft". Por ejemplo, si se hace referencia a AddLeft en la celda E5, sumará los valores en C5 y D5 (consulte la hoja de cálculo vinculada).

    Tip.svg

    Consejo:
    El código ilustra otro atributo poco conocido de Calc: los intervalos con nombre son un subconjunto de expresiones con nombre, que también pueden incluir fórmulas.

    Código

    Sub AddNamedFunction()
      Dim oSheet          'Hoja que contiene el intervalo oRange.
      Dim oCellAddress    'Dirección para referencias relativas.
      Dim oRanges         'La propiedad NamedRanges (nombres de intervalos).
      Dim oRange          'Intervalo de una sola celda
      Dim sName As String 'Nombre de la ecuación que se va a crear.
    
      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

    Hoja de cálculo de Calc contiene el código de LibreOffice Basic anterior.