CorelDraw VBA Macro中的Dim Workbook未编译

时间:2014-10-13 15:43:36

标签: vba excel-vba coreldraw

我正在编写一个CorelDraw宏,它通过打开Workbook从Excel中获取一些数据。

我喜欢在使用它们之前声明我的变量(通常还需要Option Explicit)。

在这个子目录中,我将Workbook变量声明为:

Sub needsWorkbookType()
    Dim notCompile As workbook
End Sub

但是,因为我是从CorelDraw运行的,所以我无法访问Excel的类型。当我尝试运行sub时,出现编译错误:

  • 未定义的用户定义类型

我知道我可以通过关闭显式声明来解决这个问题,而不是声明任何Excel变量。解释器将动态创建它们,它将起作用。

但我希望能够宣布它们。


我的系统是:

  • Windows 8.1
  • Excel 2013
  • Corel X6

1 个答案:

答案 0 :(得分:4)

您需要添加对Microsoft Excel 14.0 Object Library的引用以进行早期绑定。转到Tools>> References并在列表中找到该库并勾选此框。如果您有旧版本的Excel,那么数字14可能会更低,但这并不是一件大事,因为Excel对象模型多年来没有改变那个 ......

添加参考文献后,您可以说:

Dim xlApp as new Application.Excel

如果您在添加引用时遇到问题,也可以尝试延迟绑定:

Dim xlApp as Object 
Set xlApp = CreateObject("Excel.Application")

但尝试使用早期绑定,因为它可以提供智能感,您可以更好地处理任何错误。


如果您安装了Excel 2013,则可以添加对Microsoft Excel 15.0 Object Library的引用。

如果它没有显示在列表中,那么您可以浏览它,然后以这种方式安装。

为了找出要浏览的文件,您可以打开Excel VBA编辑器,并在此编辑器中查看相同的列表 - 因为您已经在Excel中,该库已经添加并将显示给您路径名称,如下所示:

enter image description here

切换回Corel VBA编辑器,然后浏览到该库。

现在将激活早期绑定。