CATIA:如何在.CATScript中启用Scripting.Dictionary并引用微软脚本运行时库?
解决CATScript中"Scripting未定义"的问题
嘿,这个问题其实是因为CATScript基于VBScript运行,和VBA的库引用机制完全不一样导致的:VBA里你能在IDE里直接勾选"Microsoft Scripting Runtime"来做早期绑定,但VBScript根本不支持这种可视化的引用操作,所以你原来VBA里写的Dim fso As Scripting.FileSystemObject这类代码,到了CATScript里就会找不到Scripting这个预定义类型,直接报错。
下面给你两种可行的解决办法:
推荐方案:改用后期绑定
这是最简单也最稳妥的方式,不需要手动处理任何引用,直接用CreateObject来创建组件实例就行。
比如你原来的VBA代码是这样的:
Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject
把它改成CATScript兼容的VBScript写法:
Dim fso Set fso = CreateObject("Scripting.FileSystemObject")
这样就彻底绕开了对Scripting类型的依赖,直接调用系统里的Microsoft Scripting Runtime组件,不会再报错。
备选方案:手动模拟早期绑定(不推荐)
如果你非得保留类似早期绑定的写法,只能手动声明Scripting里用到的常量和对象,但这非常繁琐,而且兼容性不好。比如你用到了文件读写的常量,可以在脚本开头加上:
' 手动声明Scripting组件里的常用常量 Const ForReading = 1, ForWriting = 2, ForAppending = 8 ' 依然用CreateObject创建对象 Dim fso Set fso = CreateObject("Scripting.FileSystemObject")
但这种方式并没有真正"引用"库,只是自己定义了部分常量,远不如后期绑定省心。
总结一下,直接改用后期绑定是最高效的解决办法,CATScript的VBScript环境本身是支持Microsoft Scripting Runtime组件的,只是换个调用方式就行。
内容的提问来源于stack exchange,提问作者Laurens Ruben
相关产品推荐
相关产品推荐

