VBA apoyo en OpenOffice.Org Calc

Publicado el 21. Octubre de 2009 por el 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:

  1. Excel Howtos
  2. Enlaces para 30/06/2010

3 Responses to "el soporte de VBA en Calc OpenOffice.Org"

  1. 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.

  2. 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.

  3. 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

Deja un comentario