catia VBA 二次开发问题

qq_34566295 2018-08-18 02:43:43
我在用selection的selectelement2方法时,遇到了如下问题:编译错误:函数或接口标记为限制的,或函数使用了visual basic不支持的自动化(automation)类,如下图,不知道该如何解决,请各位大神帮忙。
...全文
1306 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyc999666 2019-11-23
  • 打赏
  • 举报
回复

a) Dim Selection As Selectiom 更改为 Dim selection(去掉后面的 As Selection)
b) 检查UserForm的ShowModal的属性并设为True
脆皮大雪糕 2019-04-27
  • 打赏
  • 举报
回复
你这是在VB里面调用catia的类库吗?确认你的工程引用里面是否已经引用了相应的dll或exe。 觉着官方例子都不能用应该是你的环境都没弄好或者前置的对象都没建立好导致的。
macolJ 2019-04-26
  • 打赏
  • 举报
回复
只需要dim 不需要as,试试吧
milaoshu1020 2018-10-18
  • 打赏
  • 举报
回复
是不是类型库引用的不对呀?
舉杯邀明月 2018-08-19
  • 打赏
  • 举报
回复
如果需要在“多个模块中使用”,那这类型定义就要写在一个标准模块中,定义成Public的。
只是在单个模块中使用的话,就在要用的模块中定义成Private的就行了。

当然,无论哪种情况,写在标准模块中定义成Public的也照样可以。
舉杯邀明月 2018-08-19
  • 打赏
  • 举报
回复
哈哈…………


它这简直就是乱来嘛!
你自己定义一个Type吧,就是 SAFEARRAY 类型,把这个类型名“换个壳”。

还有那个 CATBSTR 类型,估计可以给它这么定义:
Private Type CATBSTR
Member As String
End Type
qq_34566295 2018-08-18
  • 打赏
  • 举报
回复
我试了一下,发现CATSafeArrayVariant不是预定义好的类,但是帮助文档里却又不这么说。
舉杯邀明月 2018-08-18
  • 打赏
  • 举报
回复
你试试把变量类型重新定义一下吧:
dim InputObjectType(0) as CATSafeArrayVariant

另外,它的“字符串”怎么是CATBSTR类型?
这恐怕也是个问题。

不知道变量定义成CATBSTR类型后,能不能直接用字符串给它赋值?
如果可以的话,你试试多定义两个变量,调用时第2个参数和接收返回值,都用这种类型的变量。
舉杯邀明月 2018-08-18
  • 打赏
  • 举报
回复
连“官方例子”都不能运行,那还有什么办法。


说明文档怎么是英文的?这是外国的软件么……
不知道能不能给他们的技术支持发个邮件咨询一下。
qq_34566295 2018-08-18
  • 打赏
  • 举报
回复
就是这个函数,并且还给了官方样例,虽然即使官方例子我也运行不出来,这个是它在VBA中的定义:
舉杯邀明月 2018-08-18
  • 打赏
  • 举报
回复
出现此错误提示,说明那个接口并不是给你用的。
查一下相关文档,看看你的需求,在VBA中应该调用哪个接口函数吧。

2,463

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧