error en el metodo paste de un rango

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
ppinedo
Mensajes: 55
Registrado: Jue Feb 23, 2012 1:16 pm

error en el metodo paste de un rango

Mensaje por ppinedo »

hola a todos,
estoy trabajando con una sencilla macro en Calc pero por mas que examino el codigo no veo donde esta el error, siempre obtengo el mismo error de ejecucion en el metodo paste:

Código: Seleccionar todo

option vbasupport 1

Sub prueba()
Sheets("H1").select
rows(2).copy

Sheets("H2").paste      'ERROR ??
End Sub
¿Alguien me puede indicar cual es eror?

Gracias, saludos :D
XP + AOO 4.0.0 / W10Home + LibOff 5.4
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: error en el metodo paste de un rango

Mensaje por FJCC-ES »

El error ocurre porque OpenOffice no puede traducir el código de VBA correctamente. Si quiere escribir macros en OpenOffice, debe estudiar el API (Application Programming Interface) de OpenOffice y usar OpenOffice Basic o Python.
Este código copia las primeras dos filas de la hoja H1 y pega las filas en la hoja H2.

Código: Seleccionar todo

oHojaH1 = ThisComponent.Sheets.getByName("H1")
oHojaH2 = ThisComponent.Sheets.getByName("H2")
oFilas1y2_H1 = oHojaH1.getCellrangeByName("A1:AMJ2")
oCeldaH2_A1 = oHojaH2.getCellrangeByName("A1")
oHojaH1.copyRange(oCeldaH2_A1.CellAddress, oFilas1y2_H1.RangeAddress)
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: error en el metodo paste de un rango

Mensaje por fornelasa »

Ejemplo para OpenOffice:
No se alcanza a distinguir que deseas hacer con esa macro que ni en Excel funciona.
Si el cursor (indicador de celda) lo dejaste en cualquier celda de la columna A de la hoja H2 esto debe funcionar.

Código: Seleccionar todo

Option VBASupport 1
Sub Prueba()
    Sheets("H1").Rows(2).Copy
    Sheets("H2").Activate
    ActiveSheet.Paste
End Sub
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
ppinedo
Mensajes: 55
Registrado: Jue Feb 23, 2012 1:16 pm

Re: error en el metodo paste de un rango

Mensaje por ppinedo »

fornelasa escribió:Ejemplo para OpenOffice:
No se alcanza a distinguir que deseas hacer con esa macro que ni en Excel funciona.
Si el cursor (indicador de celda) lo dejaste en cualquier celda de la columna A de la hoja H2 esto debe funcionar.

Código: Seleccionar todo

Option VBASupport 1
Sub Prueba()
    Sheets("H1").Select
    Rows(2).Copy
    Sheets("H2").Activate
    ActiveSheet.Paste
End Sub
@fornelasa, te garantizo que en excel2016 funciona perfectamente, la he probado y me pega perfectamente la fila 2 en la hoja H2.
He probado tu macro en LibO(no se si tambien es para libo o sólo para oo) y funciona!!!
¿Que diferencia hay entre tu macro y la mia aparte de que la tuya realiza un paso intermedio(.activate) y por tanto es algo mas lenta?

@FJCC-ES, la verdad es que mi macro no me da error como tal, simplemente no me funciona el metodo paste, no pega nada en la hoja H2. Supongo que si no interpetara bien el codigo o no existiera algun objeto/metodo me daria un error pero no es este caso
XP + AOO 4.0.0 / W10Home + LibOff 5.4
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: error en el metodo paste de un rango

Mensaje por fornelasa »

te garantizo que en excel2016 funciona perfectamente
Si, es cierto, coincido, ya lo verifiqué.
He probado tu macro en LibOy funciona!!!
A mi no me funciona en LiobO, tal vez porque estas pruebas las he hecho con las versiones de mi firma (Win 7). En OpenOffice me funciona normalmente.
¿Que diferencia hay entre tu macro y la mía aparte de que la tuya realiza un paso intermedio(.activate) y por tanto es algo mas lenta?
Hablando de VBA OpenOffice no soporta los cambios mas actuales de Excel como la versión 2016, además OpenOffice no es totalmente compatible con Excel.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Responder