【问题标题】:VBA control to SAP Script record with multiple entry IDs具有多个条目 ID 的 SAP 脚本记录的 VBA 控件
【发布时间】: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


    【解决方案1】:

    您应该改用 CStr 并正确连接字符串

    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=" & CStr(Customer) & " S1F1E4L=&S1F1E4H=" _
        & "&S1F1E5L=&S1F1E5H=&S1F1E6L=12.10.2022", _
        "sapevent:S1F1"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 2017-05-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      相关资源
      最近更新 更多