Página 1 de 1

Método SetString en funciones (macros)

Publicado: Vie Abr 13, 2018 9:41 pm
por jorgebj
Hola:

Soy nuevo completamente en macros y lenguaje starbasic.

Una duda, ¿el método setString no funciona en funciones?
Tengo dos códigos (resumido), en el procedimiento funciona correctamente pero en la función no hace lo esperado:

Código: Seleccionar todo

Sub Macro1
Dim oHojaActiva As Object
Dim oCell As Object 
oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
oCell = oHojaActiva.getCellByPosition( 1,14)	
oCell.setString("Test")
End Sub

function Funcion1(Parametro as string)
Dim oHojaActiva As Object
Dim oCell As Object
oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
oCell = oHojaActiva.getCellByPosition( 1,14)	
oCell.setString("Test")
End function
En esta función, el setString no escribe en la celda (1,14) el texto ¿por que?

Gracias a cualquier comentario.

Re: Método SetString en funciones (macros)

Publicado: Vie Abr 13, 2018 10:52 pm
por mauricio
A mi me funciona correctamente en las versiones mostradas en mi firma, aunque debes de agregar el valor de retorno de la función.

Ahora, recuerda que una función es para retornar un valor en la misma celda, no es una buena practica modificar el valor de otras celdas dentro de una función.

Saludos

Re: Método SetString en funciones (macros)

Publicado: Vie Abr 13, 2018 11:04 pm
por mauricio
A esto me refiero con "valor de retorno"

Código: Seleccionar todo

Function test1()
	test1 = "Hola Mundo"
End Function

Function test2(nombre As String)
	test2 = "Hola " & nombre
End Function
Saludos

Re: Método SetString en funciones (macros)

Publicado: Sab Abr 14, 2018 1:02 am
por jorgebj
Hola Mauricio:

Gracias por tu ayuda.

Invocando desde una celda no me funciona, aun cuando agregue la línea Funcion1 = resultado :
=Funcion1(A1)

Tengo windows 10 y openoffice 4.1.3
(no se porque el foro no me permite cambiar algunos datos).

¿Las funciones pueden modificar celdas?

Re: Método SetString en funciones (macros)

Publicado: Sab Abr 14, 2018 4:59 am
por mauricio
Efectivamente en OpenOffice no funciona, solo en LibreOffice.

Saludos