我正在编写一个excel宏,需要与CATIA绘图合作,即时#34;。这意味着它需要从excel表中将一些东西放在绘图上,并根据用户需求从绘图到excel表。听起来很简单,但.. 在我的特定情况下,CATIA不是在本地安装的,而是在公司的服务器上安装的。为了获得连接用户需要通过" CNEXT.exe / regserver"命令,首先查找网络磁盘上CNEXT.exe的路径。所以他需要启动命令,如:" j:\ appl ... \ CNEXT.exe / regsever "。在我的宏中,我需要通过引用* .tlb文件建立与CATIA对象的连接:Tools \ References并选择适当的参考(在我的情况下 CATIA V5 InfInterfaces对象库和 CATIA V5 DraftingInterfaces对象库)
它仍然很容易,现在很棘手:只要我在工作并且网络磁盘可用,一切正常。一旦我尝试在外面打开这个excel文件,它就会挂起。我发现我定义的引用指示存储在CATIA所在的同一位置的* .tlb文件。 :( 我正在开发的这个excel文件必须与我们的供应商共享,他们需要填写他们需要填写的manualy工作表,以及我公司中无法访问CATIA以便能够查看它的其他人。一般的想法是,宏应仅由使用CATIA的人员运行,并且手动修改工作表,并且应该可以为其他人提供审阅。目前的情况是无法访问" j:..."网络驱动器没有人能够打开excel文件,不提我正在写的启动宏。
我的问题是:是否有可能强制excel不检查lanuch中的引用,只能通过其中一个初始化过程中的某个步骤来执行此操作?我写了一些代码来检查CATIA的可用性,其中Excel可以检查这些引用。 另一个想法是将某些* .tlb文件或它们的内容嵌入我的excel文件中,以便永久地为任何人提供。
我试图在代码中添加对* .tlb文件的引用,以指示相同的* .tlb文件,但是复制到我的计算机上的某个本地目录(以便能够在公司外部编写代码),但是我收到一条错误消息:
小更新 - 关于早期和晚期绑定,我只是红了。我做了一个测试并编写了一个代码,它将CATIA对象声明为Object,而不是INFITF.Application。现在我可以在不参考任何* .tlb文件的情况下进行编码。现在问题已经消失,但智能感知也消失了:( - 我无法想象没有它就编写代码。 所以我想到了一个想法,即我可以使用正确的引用来编写* .tlb文件,然后在将宏发布到整体使用之前,我可以从" CATIA特定的"只是对象类型,但这需要编写一个宏来修改宏来为整个代码中的所有实例更改这些声明:( :( :( ..帮帮我,请..
答案 0 :(得分:0)
我建议你保留两个excel文件 包含与catia通信的宏的“主文件”和用于存储数据的“数据文件”。 “数据文件”不会有任何与catia通信的宏。
然后您可以使用主文件中的表单/文件浏览VBA代码来浏览和选择“数据文件”,然后您可以轻松读取数据文件并执行操作。
我是为客户做的,相信我,它比
更容易编写宏来修改宏以更改所有这些声明 整个代码中的实例