Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VBA项目中以编程方式导入Microsoft.Office.Interop.Excel命名空间_Excel_Vba_Ms Office - Fatal编程技术网

在VBA项目中以编程方式导入Microsoft.Office.Interop.Excel命名空间

在VBA项目中以编程方式导入Microsoft.Office.Interop.Excel命名空间,excel,vba,ms-office,Excel,Vba,Ms Office,我正试图通过编程方式将Microsoft.Office.Interop.Excel命名空间导入到我的vba项目中。我发现 这显示了如何手动导入它,但我将这个我一直在做的项目交给那些不知道如何导入它的人。有人能帮忙吗?根据您的问题,我假设您的VBA代码使用了对Microsoft Excel 12.0(或其他版本)库的引用,并且您的用户由于找不到引用而出现错误。在这种情况下,您有两个选项: 不要参考v12库,而是参考旧库,例如Excel 2003。要执行此操作,请在网上搜索此库并安装它,或者在发布

我正试图通过编程方式将
Microsoft.Office.Interop.Excel
命名空间导入到我的vba项目中。我发现
这显示了如何手动导入它,但我将这个我一直在做的项目交给那些不知道如何导入它的人。有人能帮忙吗?

根据您的问题,我假设您的VBA代码使用了对Microsoft Excel 12.0(或其他版本)库的引用,并且您的用户由于找不到引用而出现错误。在这种情况下,您有两个选项:

  • 不要参考v12库,而是参考旧库,例如Excel 2003。要执行此操作,请在网上搜索此库并安装它,或者在发布之前在Office 2003安装中“重新链接”您的文件
  • 使用后期绑定而不是早期绑定。在这种情况下,您根本不向Excel库添加引用。相反,您将对象声明为类型
    Object
    (而不是
    Excel.Workbook
    Excel.Application
    等)。要创建新对象,而不是使用
    Set-objExcelApp=new-Excel.Application
    ,现在必须使用
    CreateObject
    (用于新对象)或
    GetObject
    (用于现有对象,例如,现有的正在运行的应用程序):
    Set-objExcelApp=CreateObject(“Excel.Application”)
    。任何以后的代码都会像往常一样继续工作(尽管由于后期绑定可能会稍微慢一点)

如需进一步阅读,请勾选此项。

请澄清:如果您有一个VBA项目(在Excel中?),为什么需要导入任何命名空间?您是指Excel库的“引用”(=VBA术语)吗?名称空间是一个.NET术语,通常不在VBA上下文中使用…很抱歉,我一直在旅行。但是非常感谢彼得!我现在就要开始晚些装订了:)不客气!后期绑定的唯一缺点是:您无法在编辑器中获得显示属性的IntelliSense。因此,我通常会在装运前将早装更改为晚装。。。