首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用脚本访问SAP GUI中的“本地文件”导出

无法使用脚本访问SAP GUI中的“本地文件”导出
EN

Stack Overflow用户
提问于 2021-02-23 09:15:10
回答 1查看 624关注 0票数 0

我对堆栈溢出和VBA非常陌生,所以请原谅我的问题中的任何错误。我们正在尝试使用脚本从SAP界面下载一个表到一个.txt文件中。

每当我们试图运行代码时,就会得到错误“id无法找到控件”。

我们正试图按下的按钮

我们尝试过的事情:

  1. ,我们试过使用发送键,但是我们对它不是很有信心。这将是我们最后的选择。
  2. 当我们使用FindAllByName和"shell“时,它单击它下面的表中的”导出“按钮

据我所知

  1. 脚本中的数字(意大利化或标记为** )不断变化。因此,我们猜测SAP中存储的脚本号与我们试图运行

的excel中的脚本号之间存在冲突。

  1. 我们试图交互的表只有在加载和部件号并按下"Go“时才会出现。当我们最初打开GUI时,它不会出现。

公开声明函数SetForegroundWindow _ Lib "user32“(ByVal hwnd As Long)为Long Sub SA_Dump() Dim App,Connectionsession As Object Set SapGuiAuto = GetObject("SAPGUI") Dim setFocus As Long Set App = SapGuiAuto.GetScriptingEngine Set Connection = App.Children(0) Set session = Connection.Children(0) Dim wsh作为对象集wsh = CreateObject("WScript.Shell") Dim sCestaGrid作为字符串范围(“A2:a”& Range("A“& Rows.Count).End(xlUp).Row).Copy setFocus = session.ActiveWindow.Handle SetForegroundWindow setFocus (现在+(”0:00:05“))‘重置字段(”WScript.Shell“) 147,25,False session.findById("wnd/usr/subSUB01:/SCF/SG/CA_110SPPDRPSB1:1005/subSUB01:/SCF/SG/CA_110SPPDRPSB1:1001/btnRESETSIMPLESEL").press‘点击选择窗口session.findById("wnd/usr/subSUB01:/SCF/SG/CA_110SPPDRPSB1:1005/subSUB02:/SCF/SG/CA_110SPPDRPSB1:1002/btnSGNT_0000034-MATNR_V").press’点击复制从剪贴板session.findById(“wnd1 1/tbar/btn24 24”).press的点击检查条目标记会话。session.findById("wnd/usr/subSUB01:/SCF/SG/CA_110SPPDRPSB1:1005/subSUB01:/SCF/SG/CA_110SPPDRPSB1:1001/btnBUTTON01").press (“end 1/tbar/btn”).press‘点击复制按钮session.findById(“end 1/tbar/btn 8”).press’点击Go按钮.press‘清除剪贴板,以避免在结束时弹出以关闭Excel Application.CutCopyMode = False’点击导出(错误发生在这里!!)session.findById("wnd/usr/subSUB02:/SCF/SG/CA_110SPPDRPSB1:*2119*/subSUB03:/SCF/SG/CA_110SPPDRPSB1:*2141*/cntlCONTAINER_7/shellcont/shell").pressToolbarContextButton "&MB_EXPORT“session.findById("wnd/usr/subSUB02:/SCF/SG/CA_110SPPDRPSB1:*2119*/subSUB03:/SCF/SG/CA_110SPPDRPSB1:*2141*/cntlCONTAINER_7/shellcont/shell").selectContextMenuItem &PC”按下滴答键session.findById()“session.findById("wnd1/usr/ctxtDY_FILENAME").Text = "Rel_mvmnt.txt“session.findById("wnd1/usr/ctxtDY_FILENAME").caretPosition = 10‘点击替换按钮session.findById(”End 1/tbar/btn 11“).press End Sub

EN

回答 1

Stack Overflow用户

发布于 2022-02-28 16:14:36

我用这种方法,它起作用了:

代码语言:javascript
运行
复制
session.findById("wnd[0]/tbar[0]/okcd").text = "%pc"

如果对你有用就告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66330220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档