GUI脚本SAP

2020-09-06 03:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在尝试制作用于大量上传的脚本...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试制作用于大量上传的脚本,所以我的意思是我去了sap记录回放,我重新记录了步骤,并尝试了以相同材质,相同工厂和特定工厂运行的播放选项 状态在这里,我需要连接我的Excel,但我不知道我也在互联网上搜索过,但直到现在我仍无法找到解决方案...

记录的脚本如下,

如果不是IsObject(application)那么

设置SapGuiAuto = GetObject(" SAPGUI")

设置应用程序= SapGuiAuto.GetScriptingEngine

如果结束

如果不是IsObject(连接),则

设置连接= application.Children(0)

如果结束

如果不是IsObject(session)那么

设置会话= connection.Children(0)

如果结束

如果IsObject(WScript)然后

WScript.ConnectObject会话,"打开"

WScript.ConnectObject应用程序,"打开"

如果结束

session.findById(" wnd [0]")。maximize

session.findById(" wnd [0]/tbar [0]/okcd")。text ="/img/nzpb2"

session.findById(" wnd [0]")。sendVKey 0

session.findById(" wnd [0]/usr/ctxtRMMG1-MATNR")。text =" 910402635318"

session.findById(" wnd [0]/usr/ctxtRMMG1-MATNR")。caretPosition = 12

session.findById(" wnd [0]")。sendVKey 0

session.findById(" wnd [1]/usr/tblSAPLMGMMTC_VIEW")。getAbsoluteRow(5).selected = true

session.findById(" wnd [1]/usr/tblSAPLMGMMTC_VIEW/txtMSICHTAUSW-DYTXT [0,5]")。setFocus

session.findById(" wnd [1]/usr/tblSAPLMGMMTC_VIEW/txtMSICHTAUSW-DYTXT [0,5]")。caretPosition = 0

session.findById(" wnd [1]")。sendVKey 0

session.findById(" wnd [1]/usr/ctxtRMMG1-WERKS")。text =" SG03"

session.findById(" wnd [1]/usr/ctxtRMMG1-WERKS")。caretPosition = 4

session.findById(" wnd [1]")。sendVKey 0

session.findById(" wnd [0]/usr/tabsTABSPR1/tabpSP11/ssubTABFRA1:SAPLMGMM:2000/subSUB2:SAPLMGD1:2301/ctxtMARC-MMSTA")。text =" ZG"

session.findById(" wnd [0]/usr/tabsTABSPR1/tabpSP11/ssubTABFRA1:SAPLMGMM:2000/subSUB2:SAPLMGD1:2301/ctxtMARC-MMSTD")。text =" 18.06.2019"

session.findById(" wnd [0]/usr/tabsTABSPR1/tabpSP11/ssubTABFRA1:SAPLMGMM:2000/subSUB2:SAPLMGD1:2301/ctxtMARC-MMSTA")。setFocus

 session.findById(" wnd [0]/usr/tabsTABSPR1/tabpSP11/ssubTABFRA1:SAPLMGMM:2000/subSUB2:SAPLMGD1:2301/ctxtMARC-MMSTA")。caretPosition = 2 

session.findById(" wnd [0]")。sendVKey 0

session.findById(" wnd [0]")。sendVKey

6条回答
Alawn_Xu
2020-09-06 04:00

嗨,脚本人

下面显示了我的最终代码,但问题是sap正在运行,并且正在保存诸如"保存数据或将出现任何错误mgs"之类的注释,我需要在excel中添加此注释,请提供帮助。

公共Sub SimpleSAPExport()
将对象的昏暗连接作为
将Myimvalue变种作为
Dim Myvalue2作为变体
将objSheet1当作工作表

Set SapGuiAuto = GetObject(" SAPGUI")'获取SAP GUI脚本对象
Set SAPApp = SapGuiAuto.GetScriptingEngine'获取当前正在运行的SAP GUI
Set SAPCon = SAPApp.Children(0)'获取 当前连接的第一个系统
Set Session = SAPCon.Children(0)'获取该连接上的第一个会话(窗口)


如果不是IsObject(SAPApp),则

设置SapGuiAuto = GetObject(" SAPGUI")

设置SAPApp = SapGuiAuto.GetScriptingEngine

如果结束

如果不是IsObject(连接),则

设置连接= SAPconnection.Children(0)

如果结束


如果不是IsObject(Session),则

设置会话= connection.Children(0)

如果结束

如果IsObject(WScript)然后

WScript.ConnectObject会话,"开启"

WScript.ConnectObject SAPApp,"打开"

结束If
Session.findById(" wnd [0]")。maximize

Dim objExcel,objWorkbook,objSheet,i
将Dim A作为变体

" Dim B为变体形式

设置objExcel = CreateObject(" Excel.Application")

myfile = application.GetOpenFilename(,,"浏览工作表")
工作簿。打开myfile

设置objSheet = ActiveWorkbook.Sheets(" Sheet1")
'A = Input("输入开始行","")
'B = Input("输入结束行","")
Myvalue = InputBox("给我一些输入")
Myvalue2 = InputBox("给我一些输入")
StopNow = False

'对于i = 2到1000
对于iRow = Myvalue To Myvalue2
'在状态为0的行之间循环并调用ProcessRow函数对其进行处理
'对于iRow =开始行到objSheet.UsedRange.Rows.Count
'如果objSheet.Cells(iRow, 3)=" 0"然后
'调用ProcessRow(iRow)
'itemcount = itemcount + 1
'objSheet.Cells(9,1)= itemcount&"/"&itemmax
'结束 If
'Next
Range(" A1")。Value = i

'DoEvents
'Function ProcessRow(iRow)
'Dim W_BPNumber,W_SearchTerm
'Dim lineitems As Long
'
'将行状态设置为"正在处理..."
'objSheet.Cells(iRow,5)= 1

'BP号
'如果objSheet.Cells(iRow,1)<>""然后
'W_BPNumber = objSheet.Cells(iRow,1)
'Else
'W_BPNumber =" xxxxxx"
'如果结束

'Seartch词
'如果objSheet.Cells(iRow,2)<>""然后
'W_SearchTerm = objSheet.Cells(iRow,2)
'Else
'W_SearchTerm =" "
'如果结束


col1 = Trim(CStr(objSheet.Cells(iRow,1).Value))'Column1
COL2 = Trim(CStr(objSheet.Cells(iRow,2).Value))'Column2 < br> COL3 = Trim(CStr(objSheet.Cells(iRow,3).Value))'Column3
COL4 = Trim(CStr(objSheet.Cells(iRow,4).Value))'Column4

出错时转到Myerr

Session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/nzpb2"
Session.findById(" wnd [0]")。sendVKey 0
Session。 findById(" wnd [0]/usr/ctxtRMMG1-MATNR")。Text = col1
Session.findById(" wnd [0]/usr/ctxtRMMG1-MATNR")。caretPosition = 12
Session.findById( " wnd [0]")。sendVKey 0
Session.findById(" wnd [1]/usr/tblSAPLMGMMTC_VIEW")。getAbsoluteRow(5).Selected = True <出现错误时恢复下一个
Session.findById (" wnd [1]/usr/tblSAPLMGMMTC_VIEW/txtMSICHTAUSW-DYTXT [0,5]")。SetFocus
Session.findById(" wnd [1]/usr/tblSAPLMGMMTC_VIEW/txtMSICHTAUSW-DYTXT [0,5]") .caretPosition = 0
Session.findById(" wnd [1]")。sendVKey 0
Session.findById(" wnd [1]/usr/ctxtRMMG1-WERKS")。Text = COL2
Session。 findById(" wnd [1]/usr/ctxtRMMG1-WERKS")。caretPosition = 4
Session.findById(" wnd [1]")。sendVKey 0
Session.findById(" wnd [0]/usr /tabsTABSPR1/tabpSP11/ssubTABFRA1:SAPLMGMM:2000/subSUB2:SAPLMGD1:2301/ctxtMARC-MMSTA").Text = COL3
错误恢复下一个
Session.findById(" wnd [0]/usr/tabsTABSPR1/tabpSP11/ssubTABFRA1:SAP LMGMM:2000/subSUB2:SAPLMGD1:2301/ctxtMARC-MMSTD")。文本= COL4
错误恢复下一个
Session.findById(" wnd [0]/usr/tabsTABSPR1/tabpSP11/ssubTABFRA1:SAPLMGMM:2000 /subSUB2:SAPLMGD1:2301/ctxtMARC-MMSTD").SetFocus
Session.findById(" wnd [0]/usr/tabsTABSPR1/tabpSP11/ssubTABFRA1:SAPLMGMM:2000/subSUB2:SAPLMGD1:2301/ctxtMARC-MMSTD") .caretPosition = 10
Session.findById(" wnd [0]")。sendVKey 0
Session.findById(" wnd [1]/usr/btnSPOP-OPTION1")。按
打开错误继续下一页


如果StopNow,则退出

'Session.findById(" wnd [1]/usr/tblSAPLMGMMTC_VIEW")。getAbsoluteRow(5).Selected = False
'从状态栏获取消息并将其保存在B
objSheet列中。 单元格(iRow,5)= objSBar.Text

'将状态更新为"已完成"并退出
objSheet.Cells(iRow,5)= 2
'退出函数
'myerr:
'将状态更新为" Error" < br> objSheet.Cells(iRow,5)= 3
下一个iRow


'结束功能
结束子

一周热门 更多>