You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PCOMM VBS脚本优化:自动填充日期+自动导航至目标页面

PCOMM VBScript 优化方案:自动日期填充与菜单导航

一、自动获取今日/明日日期并填充

你之前尝试Now或日期格式化方法没成功,大概率是没匹配主机系统要求的日期格式,或是缺少单数字月/日的补零处理。以下是可直接复用的实现代码:

基础版(无补零)

Dim todayDate, tomorrowDateObj, tomorrowDate

' 获取今日日期,格式为 MM/DD/YYYY(根据主机要求调整分隔符和顺序)
todayDate = Month(Date) & "/" & Day(Date) & "/" & Year(Date)

' 计算并格式化明日日期
tomorrowDateObj = DateAdd("d", 1, Date)
tomorrowDate = Month(tomorrowDateObj) & "/" & Day(tomorrowDateObj) & "/" & Year(tomorrowDateObj)

' 填充到对应字段(替换为你实际的坐标行、列)
autECLSession.autECLOIA.WaitForInputReady
autECLSession.autECLPS.SendKeys todayDate, 15, 30 ' 今日日期填充到第15行第30列
autECLSession.autECLPS.SendKeys tomorrowDate, 15, 45 ' 明日日期填充到第15行第45列

补零版(适配两位数月/日)

如果主机要求月、日必须为两位数(比如09/05/2024而非9/5/2024),用以下代码处理:

Dim todayMonth, todayDay, todayDate
Dim tomorrowMonth, tomorrowDay, tomorrowDateObj, tomorrowDate

' 今日日期补零处理
todayMonth = Right("0" & Month(Date), 2)
todayDay = Right("0" & Day(Date), 2)
todayDate = todayMonth & "/" & todayDay & "/" & Year(Date)

' 明日日期补零处理
tomorrowDateObj = DateAdd("d", 1, Date)
tomorrowMonth = Right("0" & Month(tomorrowDateObj), 2)
tomorrowDay = Right("0" & Day(tomorrowDateObj), 2)
tomorrowDate = tomorrowMonth & "/" & tomorrowDay & "/" & Year(tomorrowDateObj)

二、自动导航至目标输入页面

核心是模拟人工操作菜单的完整流程:回到主菜单→输入菜单代码→进入子菜单,关键是每一步操作后要等待主机就绪。

示例代码(根据你的实际菜单路径调整):

' 先确认会话连接状态
If Not autECLSession.Connected Then
    MsgBox "未连接到主机会话"
    WScript.Quit
End If

' 1. 回到主菜单(如果当前不在主菜单,按对应功能键,比如F10)
autECLSession.autECLOIA.WaitForInputReady
autECLSession.autECLPS.SendKeys "{F10}"
autECLSession.autECLOIA.WaitForInputReady

' 2. 输入主菜单代码,比如"MAIN",回车进入
autECLSession.autECLPS.SendKeys "MAIN"
autECLSession.autECLPS.SendKeys "{ENTER}"
autECLSession.autECLOIA.WaitForInputReady

' 3. 输入子菜单代码,比如"DATEENTRY",回车进入目标页面
autECLSession.autECLPS.SendKeys "DATEENTRY"
autECLSession.autECLPS.SendKeys "{ENTER}"
autECLSession.autECLOIA.WaitForInputReady

' 可选:验证是否成功进入目标页面(检查屏幕特定文本)
Dim screenHeader
screenHeader = autECLSession.autECLPS.GetText(1, 1, 30) ' 获取第一行前30个字符
If InStr(screenHeader, "DATE INPUT FORM") = 0 Then
    MsgBox "导航失败,请检查菜单代码或按键设置"
    WScript.Quit
End If

注意事项

  • 所有菜单代码、功能键、屏幕坐标都要替换成你实际环境的值;
  • 每一步操作后必须调用autECLOIA.WaitForInputReady,避免主机未就绪导致输入失效;
  • 如果导航过程中有弹窗或确认步骤,要额外添加对应的按键处理。

内容的提问来源于stack exchange,提问作者Jennifer Hamilton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 23:57:21