文章编号: 213489 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

使用 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 编程的资源列表

属性

文章编号: 213489 - 最后修改: 2007年2月26日 - 修订: 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
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com