我有一个打开excel文件的应用程序。当我在使用应用程序打开的excel中运行宏功能时。我在“UCase”“Trim”“Left”上得到Compile错误“找不到项目或库”只是为了举几个例子。在我的宏函数中,我有多个使用上述函数的情况。我还引用了“Visual Basic For Application”,“Microsoft Excel 12.0对象库”,“OLE自动化”,“Microsoft Office 12.0库”,Microsoft Forms 2.0对象库。“
如果我在没有应用程序的情况下单独运行excel,则没有错误。有没有解释为什么会发生这种情况?图书馆混合匹配?适用于开发人员和一些用户,但对于其他用户,他们将得到这些错误。
答案 0 :(得分:1)
这是因为这些方法属于Excel应用程序,因此您必须通过在Excel对象名称之前添加其名称(以及可能还有其相关成员)来调用它们,您必须先实例化
例如
示例1:后期绑定
Option Explicit
Sub LateBindingExcel()
Dim xlApp As Object 'declaring your application object as of "Object" type doesn't require any reference to Excel library
' open an Excel session
Set xlApp = CreateObject("Excel.Application")
' call Excel application WorksheetFunction.Trim()
MsgBox xlApp.WorksheetFunction.Trim(" see how spaces get trimmed by this function ")
End Sub
示例2:早期绑定
Option Explicit
Sub EarlyBindingExcel()
Dim xlApp As Excel.Application 'declaring your application object as of "Excel.Application" type requires adding Excel library reference to your project
' open an Excel session
Set xlApp = CreateObject("Excel.Application")
' call Excel application WorksheetFunction.Trim()
MsgBox xlApp.WorksheetFunction.Trim(" see how spaces get trimmed by this function ")
End Sub
两种约束"样式之间的一个明显差异"是后者允许您利用IntelliSense功能,而前者不是
答案 1 :(得分:0)
可能是由于工具参考中的“ Visual Basic for Applications”引用了不存在的库。如果开发人员使用其自定义目录中的库而不是默认库,则可能会发生这种情况。
有两种解决方法。