【发布时间】:2022-10-13 00:24:24
【问题描述】:
我正在尝试使用 VBA 自动化我的一些 SAP 工作。我被困在登录中,因为客户价格文件的脚本是
session.FindById("wnd[1]/usr/cntlPRM_CC3000_1/shellcont/shell").SapEvent "Frame0", "sapbu_cl= &sapse_cl= &sapin_cl=S1F1E6~L&evtcode=ENTR&scroll_pos=0&S1F1E1L=2000&S1F1E2L=10&S1F1E3L=**98701**&S1F1E4L=&S1F1E4H=&S1F1E5L=&S1F1E5H=&S1F1E6L=12.10.2022", "sapevent:S1F1"
这对于单个客户 ID 效果很好,但我想遍历所有具有不同 ID 的客户(表 1,从 A2 开始)。因此,在这个脚本中,我需要使用变量来替换客户 ID 98701。我找到了使用Cvar(Customer) 的说明。但是,它将客户单元格留空。
代码如下:
Dim i As Integer
Dim Customer As String
i = 2
Do Until IsEmpty(Cells(i, 1))
Customer = Range("A" & i)
On Error Resume Next
...
session.FindById("wnd[1]/usr/cntlPRM_CC3000_1/shellcont/shell").SapEvent "Frame0", _
"sapbu_cl= &sapse_cl= &sapin_cl=S1F1E6~L&evtcode=ENTR&scroll_pos=0&S1F1E1L=2000" _
& "&S1F1E2L=10&S1F1E3L=Cvar(Customer)&S1F1E4L=&S1F1E4H=" _
& "&S1F1E5L=&S1F1E5H=&S1F1E6L=12.10.2022", _
"sapevent:S1F1"
...
i = i + 1
Loop
Session.FindById(...) 似乎是字符串,我不能将变量作为值包含在内。
单元格还有一个字段名称,可以直接写入或指出。
但是,在这种情况下,我找不到有关如何直接指向某个字段名称或将变体包含到 Session.FindById 字符串的说明。也欢迎其他解决方案!有人可以帮我吗?
【问题讨论】:
标签: excel vba string variant sap-gui