Cálculo del número de elementos
Trabajando con Calc, para saber cuántos elementos tiene una variable (n) únicamente necesitamos echar un vistazo a la columna en la que hemos guardado los datos: normalmente suele ser el identificador numérico Fila menos 1 (vg. 482 - 1 = 481), debido a que la primera fila suele estar ocupada por el identificador o nombre de la variable. El problema es que este sencillo procedimiento no nos permite automatizar determinadas operaciones, o no del todo.
Para automatizar la identificación del valor n (o N) de una variable (cuántos elementos tiene) podemos aplicar el siguiente procedimiento, que es mucho más largo y complejo que el anterior, pero que nos permite prescindir de la participación humana, que es en lo que consiste automatizar un procedimiento.
Sub NumeroElementosDim oHoja As Object, oCelda As ObjectDim Hoja As String, Col As StringDim Tipo As Integer, i As Integer, n As IntegerHoja = "Listado"Col = "D"n = 0oHoja = ThisComponent.getSheets().getByName(Hoja)For i = 0 To 1000oCelda = oHoja.getCellRangeByName(Col & i+2)Tipo = oCelda.getTypeIf Tipo <> 0 Thenn = n + 1ElseIf Tipo = 0 ThenExit ForEnd IfNextMsgBox nEnd Sub
Podemos darle otra formulación a este script (por ejemplo, en formularlo como función), y prescindir de determinadas instrucciones (vg. MsgBox n), pero en esencia lo que hacemos es lo siguiente:
- Accedemos a la hoja (oHoja = ThisComponent.getSheets().getByName(Hoja))
- ... y a la celda (oCelda = oHoja.getCellRangeByName(Col & i+2))
- en este caso dentro de un bucle For (For i = 0 To 1000) que nos permite recorrer el conjunto de la columna condicionando el procedimiento de acceso al contenido (Tipo = oCelda.getType)...
- mediante un condicional If complejo asociado al valor resultante
- para incrementar un numeral de conteo en caso positivo (If Tipo > 0 Then) -> (n = n + 1)
- o salir del bucle en caso negativo (ElseIf Tipo = 0 Then) -> (Exit For)

No hay comentarios:
Publicar un comentario
Comenta esta entrada