Macros/Calc/ba020/es
TDF LibreOffice en español Document Liberation Project Blogs comunitarios Weblate Nextcloud Redmine Preguntas y respuestas Donar
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).
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.