Infor Visual ERP中用VBScript修改当前选中单元格值的方法
解决Infor Visual ERP中VBScript修改选中单元格值的问题
核心思路:由于Infor Visual限制了直接控件访问,你已经通过SendKeys定位到目标单元格后,直接用SendKeys发送目标值即可,无需额外的控件对象操作。如果单元格存在原有内容,建议先清空再输入。
修改后的完整代码示例
Set shl = CreateObject("wscript.shell") ' 保留你已实现的界面切换操作 shl.SendKeys "%{e}" shl.SendKeys "{x}" shl.SendKeys "{TAB}" shl.SendKeys "{TAB}" ' 延迟1秒,确保界面完全响应(可根据实际情况调整毫秒数) WScript.Sleep 1000 ' 清空当前选中单元格的原有内容(可选,若单元格可能存在旧值) shl.SendKeys "^a" ' 全选单元格内容 shl.SendKeys "{DEL}" ' 删除选中内容 ' 填入WORKORDER_BASE_ID的值:如果是变量直接传,固定值则写字符串(比如"WO12345") shl.SendKeys WORKORDER_BASE_ID ' 后续字段的填写逻辑(同理处理) shl.SendKeys "{TAB}" shl.SendKeys WORKORDER_LOT_ID shl.SendKeys "{TAB}" shl.SendKeys WORKORDER_SPLIT_ID shl.SendKeys "{TAB}" shl.SendKeys WORKORDER_SUB_ID
关键注意事项
- 延迟处理:必须添加
WScript.Sleep,ERP界面响应速度较慢,避免SendKeys操作因界面未加载完成而错位,延迟时间可在500-2000毫秒间调整。 - 特殊字符处理:如果字段值包含
+^%~()等SendKeys特殊字符,需要用大括号包裹,比如输入加号要写shl.SendKeys "{+}"。 - 变量类型:确保
WORKORDER_BASE_ID等变量为字符串类型,若从其他途径获取数值,需先转换为字符串再传入SendKeys。
内容的提问来源于stack exchange,提问作者Chance
相关产品推荐
相关产品推荐

