[RESUELTO] No puedo introducir formula en celda por BASIC

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Avatar de Usuario
jfca283
Mensajes: 16
Registrado: Lun Abr 19, 2010 11:46 am
Ubicación: Santiago, Chile

[RESUELTO] No puedo introducir formula en celda por BASIC

Mensaje por jfca283 »

Hola
quiero ingresar una formula en D1, estoy en A1
esta es la formula como esta en BASIC

Código: Seleccionar todo

oSheet.getCellByPosition(0,3).SetFormula "=IF(OR(ISNUMBER(A1)=1,LEFT(A1,2)="00",LEFT(A1,2)="01",LEFT(A1,2)="02",LEFT(A1,2)="03",LEFT(A1,2)="04"),"OK","BORRAR")"
me dice error en syntax
que estoy ingresando mal?
gracias
Última edición por jfca283 el Mié Abr 28, 2010 12:07 pm, editado 1 vez en total.
OpenOffice 3.1 en Ubuntu 9.10
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: No puedo introducir formula en celda por BASIC

Mensaje por mauricio »

Hola...

Tienes tres errores:

1.- La referencia a las celdas con getCellByPosition, es COLUMNA, FILA, si pones (0,3) haces referencia a la celda A2, para hacer referencia a la celda D1, tienes que usar (3,0)
2.- El símbolo separador de argumentos en Calc es el punto y coma (;)
3.- Tienes que hacer uso correcto de las comillas, si necesitas comillas en los argumentos, tienes que establecerlas por código con la función Chr como te muestro a continuación.

Código: Seleccionar todo

Option Explicit

Sub Main
Dim oSheet As Object

	oSheet = ThisComponent.getCurrentController.getActiveSheet
	oSheet.getCellByPosition(3,0).setFormula ( "=IF(OR(ISNUMBER(A1)=1;LEFT(A1;2)=" & Chr(34) & "00" & Chr(34) & ";LEFT(A1;2)=" & Chr(34) & "01" & Chr(34) & ";LEFT(A1;2)=" & Chr(34) & "02" & Chr(34) & ";LEFT(A1;2)=" & Chr(34) & "03" & Chr(34) & ";LEFT(A1;2)=" & Chr(34) & "04" & Chr(34) & ");" & Chr(34) & "OK" & Chr(34) & ";" & Chr(34) & "BORRAR" & Chr(34) & ")" )		
	
End Sub
Por favor, si esto responde tu pregunta, edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], de esta forma conseguiremos un foro más ordenado.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Cascabel
Mensajes: 283
Registrado: Mié Nov 11, 2009 10:53 am

Re: No puedo introducir formula en celda por BASIC

Mensaje por Cascabel »

A lo dicho por Mauricio, sólo añadir que también puede usar dobles comillas en vez de Chr(34):

Código: Seleccionar todo

oSheet.getCellByPosition(3,0).setFormula ( "=IF(OR(ISNUMBER(A1)=1;LEFT(A1;2)=""00"";LEFT(A1;2)=""01"";LEFT(A1;2)=""02"";LEFT(A1;2)=""03"";LEFT(A1;2)=""04"");""OK"";""BORRAR"")" )
Dentro de una cadena delimitada por comillas ("), cada vez que se usan dobles comillas ("") se reemplazan por una sencilla dentro de la cadena.
OOo 3.3.0: OOO330m20 (Build:9567) en WXP+SP3 y en Ubuntu 10.10
Avatar de Usuario
jfca283
Mensajes: 16
Registrado: Lun Abr 19, 2010 11:46 am
Ubicación: Santiago, Chile

Re: No puedo introducir formula en celda por BASIC

Mensaje por jfca283 »

gracias
RESUELTO
OpenOffice 3.1 en Ubuntu 9.10
Responder