你目前正处于脱机状态,正在等待 Internet 重新连接

在 Excel 中使用 CreateObject 命令时加载宏未加载

Support for Office 2003 has ended

Microsoft ended support for Office 2003 on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

症状
使用 CreateObject 命令以 OLE 自动化对象的形式访问 Microsoft Excel 时,位于 XLStart 目录下的加载宏和文件以及默认的新工作簿未加载。
原因
尝试加载这些加载宏和文件时,Excel 会向调用应用程序(如 Visual Basic)发送消息,而该应用程序并未准备好响应该请求并在稍后重试。该调用应用程序可能无法处理这一请求并继续执行命令的剩余部分。
替代方法
Microsoft 提供的编程示例只用于说明目的,不附带任何明示或暗示的保证。这包括但不限于对适销性或特定用途适用性的暗示保证。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持工程师可以帮助解释某个特定过程的功能。但是他们不会修改这些示例以提供额外的功能或构建过程以满足您的特殊需求。

要在以 OLE 自动化对象的形式运行 Excel 时加载某个加载宏文件,可手动加载该加载宏。此方法的示例如下所示。

Microsoft Office Excel 2007

Sub LoadAddin()   ' Dimension variable xl as object type.   Dim xl As Object   ' Activate Microsoft Excel and assign to variable xl.   Set XL = CreateObject("Excel.Application")   ' Open the add-in file you want, in this example, XLQUERY.XLAM.   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")   ' If you need to register the functions and commands   ' contained in a resource (XLL), use the RegisterXLL method.   ' In the example below, all functions of Analys32.xll are   ' registered.   ' XL.RegisterXLL "Analys32.xll"   ' Run any auto macros contained in the add-in file   ' Auto macros don't run when you open a file   ' using the Open method.   XL.Workbooks("xlquery.xlam").RunAutoMacros 1   Set XL = Nothing End Sub				

Microsoft Office Excel 2003 及早期版本的 Excel

Sub LoadAddin()   ' Dimension variable xl as object type.   Dim xl As Object   ' Activate Microsoft Excel and assign to variable xl.   Set XL = CreateObject("Excel.Application")   ' Open the add-in file you want, in this example, XLQUERY.XLA.   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")   ' If you need to register the functions and commands   ' contained in a resource (XLL), use the RegisterXLL method.   ' In the example below, all functions of Analys32.xll are   ' registered.   ' XL.RegisterXLL "Analys32.xll"   ' Run any auto macros contained in the add-in file   ' Auto macros don't run when you open a file   ' using the Open method.   XL.Workbooks("xlquery.xla").RunAutoMacros 1   Set XL = Nothing End Sub				
更多信息
因为在以 OLE 自动化对象的形式调用 Excel 时,它不会加载 XLStart 目录中的加载宏或文件,所以您可以完全控制加载过程。如果希望加载某个加载宏,可手动加载它。

此行为也意味着当 Excel 由 CreateObject 命令调用时,不会有宏错误、锁定文件警报或只读文件警报阻止其加载。这一行为的另一个优点是,加载 Excel 比加载加载宏或文件时所用的时间更少。
参考
有关如何获取 Visual Basic for Applications 帮助的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
226118可用于帮助您学习 Visual Basic for Applications 编程的资源列表
personal.xls personal macro workbook XL2000 XL2002 XL2003 XL2007
属性

文章 ID:213489 - 上次审阅时间:02/26/2007 12:42:00 - 修订版本: 5.1

Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Excel 2002 标准版, Microsoft Excel 2000 标准版, Microsoft Excel 97 标准版

  • kbprogramming kbautomation kbprb kbdtacode kbvba kbexpertiseinter KB213489
反馈