2020-09-19 01:32发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好!
我是SAP和VBA的新手,但我确实需要一些帮助!
我正在尝试从Excel工作表中获取通知编号,将其输入QM03,然后转到"项目"以将"缺陷类型"输出到excel,然后转到"项目任务" 使用任务代码P020,然后将"任务文本"输出到excel。
如果找不到通知号,我想跳过它,转到下一个。
我正在使用Windows的SAP GUI。
我将非常感谢您的帮助! 谢谢!
你好辛西娅,
欢迎使用SAP社区。 p>
您可以尝试以下方法来满足您的要求:
昏暗NotificationNumbers(3) NotificationNumbers(0)=" 4711" NotificationNumbers(1)=" 4712" NotificationNumbers(2)=" 4713" 对于i = 0到UBound(NotificationNumbers)-1 Session.FindById(" wnd [0]/usr/ctxtRIWO00-QMNUM")。Text = NotificationNumbers(i) Session.FindById(" wnd [0]")。SendVKey 0 StatusBarText = Session.FindById(" wnd [0]/sbar/pane [0]")。Text 如果InStr(StatusBarText,"不存在"),则 转到NextIteration 万一 '这是正常过程 NextIteration: 下一个
我使用字符串数组模拟不同的通知编号。 我遍历数组并将通知号设置为该字段。 然后执行QM03 TAC并阅读状态栏。 如果状态栏包含"不存在",我知道我必须跳到下一个通知号,因此我使用GoTo NextIteration。 否则我可以处理我的正常活动。
让我们知道您的结果。
干杯 Stefan
您好 Stefan Schnell ,
谢谢您的帮助!
我稍微修改了代码以包含我的范围,但由于SAP未返回数据,因此出现错误619。
您知道如何解决吗?
子QM03() Set SapGuiAuto = GetObject(" SAPGUI")'获取SAP GUI脚本对象 设置SAPApp = SapGuiAuto.GetScriptingEngine'获取当前正在运行的SAP GUI Set SAPCon = SAPApp.Children(0)'获取当前已连接的第一个系统 设置会话= SAPCon.Children(0)'获取该连接上的第一个会话(窗口) '开始交易以查看表格 session.StartTransaction" QM03" Dim rngNotificationNumbers作为范围 设置rngNotificationNumbers = Range(" A4:A704") Dim arrNotificationNumbers(700)作为字符串 暗单元格范围 昏暗的我只要 我= 0 对于i = 0到UBound(arrNotificationNumbers)-1 session.FindById(" wnd [0]/usr/ctxtRIWO00-QM03")。Text = arrNotificationNumbers(i) session.FindById(" wnd [0]")。SendVKey 0 StatusBarText = session.FindById(" wnd [0]/sbar/pane [0]")。Text 如果InStr(StatusBarText,"不存在"),则 转到NextIteration 万一 NextIteration: 下一个 结束
请尝试以下代码:
子QM03() 昏暗的SapGuiAuto作为对象 将SAPApp变暗为SAPFEWSELib.GuiApplication 将SAPCon昏暗为SAPFEWSELib.GuiConnection 昏暗的会话作为SAPFEWSELib.GuiSession Dim rngNotificationNumbers作为范围 昏暗的我只要 昏暗的StatusBarText作为字符串 Set SapGuiAuto = GetObject(" SAPGUI")'获取SAP GUI脚本对象 设置SAPApp = SapGuiAuto.GetScriptingEngine'获取当前正在运行的SAP GUI Set SAPCon = SAPApp.Children(0)'获取当前已连接的第一个系统 设置会话= SAPCon.Children(0)'获取该连接上的第一个会话(窗口) '开始交易以查看表格 session.StartTransaction" QM03" 设置rngNotificationNumbers = Range(" A1:A3") 对于i = 1到rngNotificationNumbers.Rows.Count session.FindById(" wnd [0]/usr/ctxtRIWO00-QMNUM")。Text = CStr(rngNotificationNumbers.Cells(i,1)) session.FindById(" wnd [0]")。SendVKey 0 StatusBarText = session.FindById(" wnd [0]/sbar/pane [0]")。Text 如果InStr(StatusBarText,"不存在"),则 转到NextIteration 万一 '如果通知号存在,请按这里的正常流程 NextIteration: 下一个 结束子
在A1到A3单元格中是我的通知编号。
如上所述,我遍历该范围,并将每个通知号放在QM03字段中。
最多设置5个标签!
你好辛西娅,
欢迎使用SAP社区。 p>
您可以尝试以下方法来满足您的要求:
我使用字符串数组模拟不同的通知编号。 我遍历数组并将通知号设置为该字段。 然后执行QM03 TAC并阅读状态栏。 如果状态栏包含"不存在",我知道我必须跳到下一个通知号,因此我使用GoTo NextIteration。 否则我可以处理我的正常活动。
让我们知道您的结果。
干杯
Stefan
您好 Stefan Schnell ,
谢谢您的帮助!
我稍微修改了代码以包含我的范围,但由于SAP未返回数据,因此出现错误619。
您知道如何解决吗?
你好辛西娅,
请尝试以下代码:
在A1到A3单元格中是我的通知编号。
如上所述,我遍历该范围,并将每个通知号放在QM03字段中。
让我们知道您的结果。
干杯
Stefan
一周热门 更多>