2009-02-03 21 views
55

Así que tengo que ejecutar la aplicación Excel de otra persona en mi PC, y obtengo "No encuentro proyecto o biblioteca" en funciones estándar como fecha, formato, hex, medio, etc."No se puede encontrar el proyecto o la biblioteca" para las funciones estándar de VBA

Algunas investigaciones indican que si prefijo estas funciones con "VBA". como en "VBA.Date", funcionará bien.

Las páginas web sugieren que tiene que ver con las referencias de mi proyecto en mi sistema, mientras que deben estar bien en el sistema del desarrollador. Voy a estar lidiando con esto por un tiempo de otros, y distribuiré estas aplicaciones a muchas otras, así que necesito entender qué hay de malo en mi configuración de Excel que necesito corregir, o qué necesita cambiarse en el archivo xls para que se ejecute en una variedad de sistemas. Me gustaría evitar que todos usen "VBA". como referencia explícita, pero si no hay una solución ideal, supongo que eso es lo que tendremos que hacer.

  • ¿Cómo puedo hacer "VBA." implícito en mis propiedades de proyecto/referencias/etc?

-Adam errores

+0

¿Está desarrollando en una versión de Excel y distribuyendo a usuarios que usan una versión diferente? –

+0

Ese puede ser el caso; no sé qué versión están usando los desarrolladores. Voy a revisar. –

+2

http://www.cpearson.com/Excel/MissingReferences.aspx – SmartestVEGA

Respuesta

51

he visto sobre las funciones estándar si había una referencia a una biblioteca totalmente diferente que faltan.

En el editor de VBA ejecute el comando Compilar desde el menú y luego revise el cuadro de diálogo Referencias para ver si falta algo y, si es así, intente agregar estas bibliotecas.

En general, parece una buena práctica compilar el código VBA completo y luego guardar el documento antes de la distribución.

+3

Estoy de acuerdo. Las referencias faltantes se marcarán claramente como FALTANTES. En su caso, sospecho que se trata de una versión posterior de la biblioteca de Excel, que se puede solucionar con el enlace posterior o seleccionando la biblioteca anterior. No creo que la compilación del código ayude con las referencias faltantes. – Fionnuala

+0

Hmm. Recibo una solicitud de una contraseña de VBAproject. La trama se complica. –

+0

Es hora de encontrar el desarrollador original, creo. –

12

Experimenté este problema exacto y encontré, en la máquina de los usuarios, que una de las bibliotecas de las que dependía estaba marcada como "FALTA" en el cuadro de diálogo de referencias. En ese caso, era una biblioteca de fuentes de oficina que estaba disponible en mi versión de Office 2007, pero no en el escritorio del cliente.

El error que se obtiene es un completo engaño (como lo señala divo).

Afortunadamente no estaba usando nada de la biblioteca, así que pude eliminarlo de las referencias XLA por completo. Supongo que una extensión de la mejor práctica recomendada de Divo sería probar para verificar el XLA en todas las versiones de Office de destino (no es una mala idea en ningún caso).

7

En mi caso, era que la función era AMBIGUOUS tal como se definió en la biblioteca de VBA (presente en mis referencias), y también en la Biblioteca de objetos de Microsoft Office (también presente). Eliminé la Biblioteca de objetos de Microsoft Office y ¡listo! No es necesario usar el VBA. prefijo.

27

Tuve el mismo problema. Esto funcionó para mí:

  • En VB vaya a Herramientas » Referencias
  • Desactive la biblioteca "Controles Crystal Analysis 1.0 Común". O cualquier biblioteca.
  • acaba de salir de estas referencias 5:
    1. de Visual Basic para Aplicaciones (Esta es la biblioteca que define el lenguaje VBA.) Objeto
    2. Microsoft Excel Biblioteca (Esto define todos los elementos de cálculo de Excel.)
    3. Automatización OLE (Esto especifica los tipos para vincular e incrustar documentos y para la automatización de otras aplicaciones y la "fontanería" del sistema COM que Excel usa para comunicarse con el mundo exterior)
    4. Microsoft Office (Esto define cosas que son comunes a todos los programas de Office, como las barras de comandos y los controles de la barra de comandos.)
    5. Microsoft Forms 2.0 Esto es obligatorio si está utilizando un formulario de usuario. Esta biblioteca define cosas como el formulario de usuario y los controles que puede colocar en un formulario.
  • Luego guarde.
+0

Para el mío tuve que desmarcar "MicroSoft MapPoint 19.0 Object Library" que no se usó en la macro en cuestión pero se usó en otro lugar de la hoja de cálculo. – ELW

+1

El mío era "Microsoft Windows Common Controls 6.0 (SP4)", que estaba presente en mi máquina Excel 2010 pero en una computadora portátil con Excel 2013. Además, parece estar en uso (obtengo "No se puede eliminar el control o referencia" ; en uso "si lo desactivo), así que necesito averiguar qué lo está usando y deshacerme de eso ... – Rich

+0

[Corrección: lo anterior debería haber dicho" * no * en una computadora portátil ... "] Resulta que tampoco puedo eliminar la referencia del proyecto en la máquina donde funciona. Ahora he tratado de eliminarlo programáticamente (usando .VBProject.References, haciendo un bucle sobre ellos, y llamando a Remove en el malo para eliminarlo) y obtengo un "Error en tiempo de ejecución '-2147319779 (8002801d)': la biblioteca de objetos no registrado "en la máquina sin la biblioteca, y obtengo" Error en tiempo de ejecución '57101': No se puede eliminar la referencia predeterminada "en la máquina que * does * tiene la biblioteca MSComctlLib presente. Grrrr. – Rich

0

En mi caso estaba revisando el trabajo realizado en la computadora de mi oficina (con Visio instalado) en mi casa (sin Visio). A pesar de que VBA parecía estar colgado en funciones predeterminadas simples, el problema era que tenía referencias a las bibliotecas de Visio todavía activas.

Cuestiones relacionadas