FactoryTalk View VBA导入代码报User defined type not defined错误求助
报错根因
你遇到的「User Defined Tags not Defined」报错核心原因是:ColumnHeader、ListItem、ListSubItem都属于Microsoft Windows Common Controls 6.0 (SP6) 库(对应文件MSCOMCTL.OCX)中ListView控件的专属类型,你当前SCADA系统的VBA环境默认没有引用该库,VBA无法识别这些专属类型,因此触发未定义报错。
解决方案
- 方案1(优先):在VBA编辑器顶部菜单栏选择「工具」→「引用」,在可用引用列表中找到「Microsoft Windows Common Controls 6.0 (SP6)」选项,勾选后点击确认,重新编译代码即可恢复正常。
- 方案2(适配无控件引用的环境):如果引用列表找不到对应库,说明你的SCADA环境未注册该控件,可将变量声明改为通用
Object类型规避类型检查,修改后的代码如下:
Option Explicit Private lstRecHeader As Object ' Headers in the lstReceived Private lstRecItems As Object ' Items in the lstReceived Private lstRecSubItems As Object
- 方案3:如果你后续代码不会用到这三个变量操作ListView的专属属性/方法,可直接删除这三行声明,仅保留你实际需要使用的变量即可。
注意:部分工业SCADA系统会限制第三方ActiveX控件的引用权限,优先使用SCADA官方提供的原生控件类型可避免兼容性问题。
内容的提问来源于stack exchange,提问作者Vishal Sarode
相关产品推荐
相关产品推荐

