如何识别Attachmate EXTRA! X-treme宏编辑器红色bug图标对应的错误?
关于Attachmate EXTRA! X-treme宏编译错误的解决方法
一、查看红色bug图标对应的错误信息的方法
- 尝试快捷键触发:按下
F7执行编译,或用Ctrl+Shift+F7重新编译,部分版本会直接弹出包含错误详情的对话框 - 检查编辑器视图菜单:查看「View」(视图)菜单下是否有「Error List」(错误列表)选项,部分版本会将编译错误集中展示在这里
- 借助外部语法检查工具:把宏代码复制到Notepad++(需安装VB语法检查插件)或VB6编辑器中,这类工具能直接标注语法错误并显示具体原因
二、示例代码中ReDim bdays(UBound(names))行的错误原因
该行的编译错误由两个前置问题导致:
- 变量类型不匹配:
你声明names As String(单个字符串类型),但Split函数返回的是字符串数组,直接将数组赋值给单个字符串变量会触发类型错误。需将names的声明改为Dim names() As String。 - 未定义变量引用:
代码中Split(Trim(name_list), " ")里的name_list从未被声明和赋值,属于未定义变量。你之前给names赋值了字符串"Annie Bella Carter",应改为Split(Trim(names), " ")或统一变量名。
修正后的示例代码:
Sub Main Dim Sys As Object, Sess As Object Dim names() As String ' 修正为字符串数组类型 Dim bdays() As String ' Initialize session Set Sys = CreateObject("Extra.System") Set Sess = Sys.Sessions.Item(1) Sess.Activate ' Getting names Dim name_str As String ' 新增临时变量存储原始字符串 name_str = "Annie Bella Carter" names = Split(Trim(name_str), " ") ' 使用已定义的变量name_str ReDim bdays(UBound(names)) ' 类型匹配,可正常编译 End Sub
内容的提问来源于stack exchange,提问作者Sophie Gardiner
相关产品推荐
相关产品推荐

