simbolos - Escribir VBA en Excel 2007 para usar en Excel 2003
todas las funciones de excel paso a paso pdf (5)
Donde estoy en los desarrolladores se han actualizado a Excel 2007, pero la mayoría de los usuarios no. Estoy construyendo una plantilla de hoja de cálculo (* .xlt) para un usuario que necesitará un código vba incluido, y me pregunto qué problemas me encontrarán al construir esto en 2007 en lugar de 2003. No tengo acceso a una máquina con Excel 2003 para probar, y me preocupa que este proyecto en particular se dirija a un desastre.
El idioma de VBA no ha cambiado, pero hay objetos adicionales en Office 2007 que no están en Office 2003. Naturalmente, esto causará un error de tiempo de ejecución cuando intente acceder a estos elementos en un entorno de 2003. ¿Qué le impide configurar una máquina virtual con Excel 2003 para desarrollarla?
En lugar de depender de una lista probablemente incompleta de objetos y métodos que se han agregado a la biblioteca de objetos de Excel 2007, la mejor práctica (la más útil) es desarrollarse siempre en la versión más antigua de Excel que probablemente se utilice para ejecutar el código.
Solía ​​desarrollar muchas macros en 2003, qué POTA, cosas como Find, Dir y algunas otras no están disponibles o algo cambia. por lo tanto, se pueden esperar algunos errores, solía contar desde 65000 filas hasta la primera fila no vacía para contar las filas en las que trabajar ... ahora más filas significan más trabajo por hacer
Una diferencia que descubrí es que una subrutina debe tener una firma diferente para llamar desde un menú (en Excel 2003) que cuando se llama desde la cinta (en Excel 2007). Además, Excel 2003 no reconoce IRibbonControl y arroja errores de compilación.
Para trabajar hacia la compatibilidad de versiones cruzadas, utilizo un Argumento de compilación condicional y luego lo compruebo en las macros del preprocesador.
p.ej
#If USINGRIBBON Then
Public Sub CallFromRibbon(control As IRibbonControl)
#Else
Public Sub CallFromRibbon()
#End If
'' Code here
End Sub
Esto significa que debe guardar una versión de su complemento con el indicador USINGRIBBON establecido en falso (para Excel2003) y otro con el indicador USINGRIBBON establecido en verdadero (para Excel2007), pero esto es mucho más fácil que mantener dos completamente separados Bases de código
billb2112 tiene razón. Existen numerosos cambios en Excel 2007 sobre excel 2003 que no son retrocompatibles. Si bien es posible que el idioma no haya cambiado, los objetos se han actualizado. Algunos han agregado propiedades adicionales, algunos funcionan de manera diferente y algunas funciones en Excel han cambiado.
Debe tener mucho cuidado con lo que el código funciona en Excel 2003. Sugeriría que billb2112 dijera que tiene una máquina virtual no solo para probar sino también para codificar. Hago todo mi desarrollo de Excel para clientes que solo tienen 2003 en una máquina de 2003 Tenga en cuenta que si los usuarios tienen Excel 2002 o 2000, existen aún más diferencias a medida que retrocede y simplemente obtendrá errores de tiempo de ejecución en cualquier código que estas versiones anteriores no admitan.
actualizar lamentablemente la respuesta de jeffs no es del todo correcta. mientras que sí, el idioma vba no se ha actualizado, no es lo mismo en 2007 que en 2003, ya que en 2003 no es lo mismo que en 2002, etc., lo que sucedió es extra y se agregaron funciones y argumentos adicionales para las funciones. por ejemplo, hay más opciones en la función BUSCAR en Excel en 2003 que en 2002. por lo tanto, si registra una macro (la mejor manera de encontrar estos problemas) en 2003 y luego la ejecuta en 2002, tendrá errores de tiempo de ejecución relacionados con la nuevos argumentos que simplemente no funcionan en el editor VBA 2002. seguir el mismo proceso para las funciones que han cambiado en Excel 2007 y luego volver al 2003 para probarlo lo ayudará a localizar estos problemas. algunos ejemplos incluyen el formato condicional, los colores (temas) y numerosas nuevas funciones de hoja de cálculo. jon Peltier tiene el mejor consejo al respecto: desarrolle en la versión más antigua posible que usará el cliente / usuario. Virtual PC 2007 se puede descargar e instalar de forma gratuita. solo necesitará una copia con licencia de XP / Vista y la oficina para instalarla.