VBA apoyo en OpenOffice.Org Calc
Publicado el 21. Octubre de 2009 por el Krishnan en la Ingeniería , Howto , OpenOffice.org , Consejos
Durante muchos años, hasta ayer, que sabía acerca de OpenOffice.Org Calc. Hoy en día, estoy emocionado por ello.
Traté de OpenOffice hace muchos años. Podría hacer cosas que en aquel entonces, pero inmediatamente rechazó como insuficiente para mis necesidades. Siempre he sido un fan de lo que podía hacer VBA para Excel.
La semana pasada, terminé la pieza más compleja de la aplicación de VBA que jamás había escrito. Yo soy un novato de VBA y me tomó una semana para terminar mi código que puede ser impreso en 28 páginas en formato A4. Mi hoja de cálculo hasta la fecha funciona perfectamente en XP / Office 2003, como se supone que, pero me escribió la mayor parte de mi código en Windows Vista / Office 2007.
Cuando he actualizado a Debian Squeeze, Openoffice.org 3.1.1 viene con él. Revisé la nueva versión y me impresionó que se podía escribir macros en Python, Javascript, BeanShell, además de BASIC.
Traté de abrir la pieza más compleja de código VBA en Openoffice.org y fue bombardeado con cientos de mensajes de error repetitivos que tenía que matar a la hoja de cálculo de la línea de comandos. Estaba convencido de que VBA y OOoCalc no son compatibles, hasta que descubrí este sitio por accidente cuando se trata de aprender a escribir macros en OOo Javascript.
Aceptar. Todo lo que necesitaba era añadir "Opción de Soporte de VBA 1". Eso no suena muy difícil, así que traté de abrir la hoja de cálculo de nuevo y tuvo que matar de nuevo todo, desde la línea de comandos.
Algo no estaba bien y yo no estaba siendo capaz de correr VBA a pesar de la compatibilidad prometida.
Así que me decidí a ir lento. No importa cuántas veces, no pude ejecutar las macros al abrir el archivo nativo de Excel. Así que me decidí a abrir el archivo de Excel con macros deshabilitadas. Eso me dejó abrir la hoja de cálculo, pero nada funcionaba. Me encontré con que había añadido de forma automática OOoCalc "Opción de Soporte de VBA 1" a mis módulos.
Me salvó el archivo como. SAO y procedió a depurar al permitir que las macros de nuevo. Esta vez, los errores no vienen en una flood.They vino uno a la vez y era más fácil de depurar.
La primera serie de errores relacionados con las variables que no tienen una instrucción Dim explícito. VBA en Excel parecía más indulgente en el manejo de varaibles sin los correspondientes instrucciones Dim. Pero OpenOffice Calc no le gustaba. Así que terminé la adición de unas pocas declaraciones Dim para algunas variables.
El siguiente conjunto de errores fue con Excel los nombres de UDF. OOo Calc le gusta ver las funciones que se invocan con letras mayúsculas. Así que si usted había utilizado letras minúsculas en Excel, que se presentaba como errores. Esto podría ser fácilmente resuelto mediante el uso de buscar y reemplazar característica.
Con sólo estas dos cosas, fijo mi nuevo archivo. SAO funcionó a la perfección. Luego lo guardan como archivos. Xls y volver a abrir los xls. Y todo estaba funcionando todavía. Aunque OpenOffice Calc documentación sigue diciendo que no todas las funciones de VBA son compatibles, VBA se ejecuta bien en OOoCalc para todos los cálculos prácticos de ingeniería. Así que ahora es el momento para mí para hacer el cambio.
Ahora bien, si usted tiene dificultades, para conseguir el código VBA para trabajar en OOo Calc, no renuncies a poco.

Puestos relacionados con:


















































Rakesh
07. Noviembre de 2009
Hola,
He tratado de hacer lo que u han mencionado, pero aún así no funciona.
si SHEET1.CELLS (7, 4) = "" O SHEET1.CELLS (9, 4) = "" O SHEET1.CELLS (10, 4) = ""
En esta línea que estoy recibiendo propiedad o método no encontrado.
Krishnan
09. Noviembre de 2009
La sintaxis es obviamente incorrecto que puedo ver.
Si, entonces, lo demás son las palabras clave que se utilizarán. O no.
james
07. Febrero de 2010
ingnoring el "rem"
la forma que lo haría bien esta en OOo? i trabajo no puedo salir de OOo - por favor me hagan hablar?
Rem Sub palabras ()
Rem '
Macro Rem 'Palabras
Macro Rem 'registró 07/02/2010 por el propietario
Rem '
Acceso directo Rem ': Ctrl + W
Rem '
Rem Dim NumWords As Integer
Rem Dim longitud de palabra As Integer
Rem Dim Count As Integer
Rem Dim Count2 As Integer
Rem Dim Lcase As Integer
Rem
Rem Dim Palabra As String
Rem Dim MixedWord As String
Rem Dim Carta As String
Rem
Hojas de Rem "(" Palabras "). Activar
Rem
REM SET wordRange = Worksheets ("Palabras") Range ("A1: A500").
Rem NumWords = Application.WorksheetFunction.CountA (wordRange)
Rem
Rem para count = 1 Para NumWords
Rem longitud de palabra = Len (Cells (Count, 1))
Rem
Rem
Rem 'Application.EnableSound = False
Rem
Rem 'Application.EnableSound = True
Rem = palabra células (Conde, 1)
Las células Rem '(Count, 1). Activar
ActiveCell.Characters Rem '(1, 3). PhoneticCharacters = Palabra
Rem MixedWord = ""
Rem Para Count2 = 1 Para longitud de palabra
Rem Letra = Mid (Cells (Count, 1), count2, 1)
Rem 'Application.Speech.Speak (Carta)
Rem Lcase = Round (Rnd)
Rem
Rem
Rem Si Lcase = 1 y ASC (Carta)> = 97 Entonces Carta = Chr (Asc (Carta) - 32)
Rem
Rem MixedWord MixedWord = + Carta
Rem Siguiente Count2
Células REM (1, 5) = MixedWord
Rem
Rem Dim Mensaje, Título, por defecto, MyValue
Rem mensaje = "mono listo?"
Rem Título = "Honores juego de ortografía".
Rem defecto = "SI"
Rem MyValue = InputBox (Mensaje, Título, por defecto)
Rem
Rem
Rem Para Count2 = 1 Para longitud de palabra
Rem Letra = Mid (Cells (Count, 1), count2, 1)
Rem Application.Speech.Speak (Carta)
Rem Siguiente Count2
Rem Application.Speech.Speak (Word)
Rem
Rem Si MyValue "Sí",
Rem Application.Speech.Speak ("Eso es Pooey mal - que ha introducido")
Rem longitud de palabra = Len (MyValue)
Rem Para Count2 = 1 Para longitud de palabra
Rem Letra = Mid (MyValue, Count2, 1)
Rem Application.Speech.Speak (Carta)
Rem Siguiente Count2
Rem Application.Speech.Speak (MyValue)
Rem End If
Rem
Rem
Rem Siguiente Conde
Rem
Rem
Rem End Sub
Rem