脚本MB51

2020-08-18 00:38发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我无法在MB51屏幕上创建脚本,...

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

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


我无法在MB51屏幕上创建脚本,代码看起来像这样:

 Sub gerar_contagem()






 设置会话= GetObject(" SAPGUI")。GetScriptingEngine.Children(0).Children(0)
 session.findById(" wnd [0]")。maximize
 session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/NMB51"
 session.findById(" wnd [0]")。sendVKey 0
 session.findById(" wnd [0]/tbar [1]/btn [17]")。按
 session.findById(" wnd [1]/usr/txtENAME-LOW")。Text =" w890230"
 session.findById(" wnd [1]/usr/txtENAME-LOW")。SetFocus
 session.findById(" wnd [1]/usr/txtENAME-LOW")。caretPosition = 7
 session.findById(" wnd [1]/tbar [0]/btn [8]")。按
 session.findById(" wnd [1]/usr/cntlALV_CONTAINER_1/shellcont/shell")。currentCellColumn =" TEXT"
 session.findById(" wnd [1]/usr/cntlALV_CONTAINER_1/shellcont/shell")。selectedRows =" 0"
 session.findById(" wnd [1]/usr/cntlALV_CONTAINER_1/shellcont/shell")。doubleClickCurrentCell
 session.findById(" wnd [0]/usr/ctxtBUDAT-LOW")。SetFocus
 session.findById(" wnd [0]/usr/ctxtBUDAT-LOW")。caretPosition = 0
 session.findById(" wnd [0]")。sendVKey 4


 昏暗的objExcel
 昏暗的objSheet,intRow,我
 设置objExcel = GetObject(," Excel.Application")
 设置objSheet = objExcel.ActiveWorkbook.ActiveSheet(1)


 对于i = 2到objSheet.UsedRange.Rows.Count
 G8 = Trim(CStr(objSheet.Cells(i,7).Value))‘G8
 I8 = Trim(CStr(objSheet.Cells(i,7).Value))‘I8


 session.findById(" wnd [1]/usr/cntlCONTAINER/shellcont/shell")。focusDate = G8
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [0]/usr/ctxtBUDAT-HIGH")。SetFocus
 session.findById(" wnd [0]/usr/ctxtBUDAT-HIGH")。caretPosition = 0
 session.findById(" wnd [0]")。sendVKey 4
 session.findById(" wnd [1]/usr/cntlCONTAINER/shellcont/shell")。focusDate = I8
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [0]/tbar [1]/btn [8]")。按
 session.findById(" wnd [0]/tbar [1]/btn [48]")。按
 session.findById(" wnd [0]/mbar/menu [3]/menu [2]/menu [1]")。选择
 session.findById(" wnd [1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell")。setCurrentCell 27," TEXT"
 session.findById(" wnd [1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell")。firstVisibleRow = 18
 session.findById(" wnd [1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell")。selectedRows =" 27"
 session.findById(" wnd [1]/usr/ssubD0500_SUBSCREEN:SAPLSLVC_DIALOG:0501/cntlG51_CONTAINER/shellcont/shell")。clickCurrentCell
 session.findById(" wnd [0]/mbar/menu [0]/menu [1]/menu [1]")。选择
 session.findById(" wnd [1]/tbar [0]/btn [11]")。按




 结束子
 

问题在于这些行的目的是将电子表格的单元格G8和I8中的信息插入屏幕MB51的日期字段中::

昏暗objExcel
 昏暗的objSheet,intRow,我
 设置objExcel = GetObject(," Excel.Application")
 设置objSheet = objExcel.ActiveWorkbook.ActiveSheet(1)


 对于i = 2到objSheet.UsedRange.Rows.Count
 G8 = Trim(CStr(objSheet.Cells(i,7).Value))‘G8
 I8 = Trim(CStr(objSheet.Cells(i,7).Value))‘I8
 

有人可以帮我解决这个问题吗?

9条回答
Doze时光
2020-08-18 01:10

你好

多年来我都没有在Visual Basic中进行编程...

如果FOR循环永远消失了,那么我将检查objSheet.UsedRange.Rows.Count值。 也许这是一个很大的数字? 否则,在代码中放置一个断点,看看发生了什么。

它永远不会为零,因此永远不会满足此条件。

对于i = 2到objSheet.UsedRange 行数
     如果i = 0则
     如果If 

,请在此处结束。

 INICIO = Trim(CStr(objSheet.Cells(7,6).Value))'DATA INICIO
 FIM = Trim(CStr(objSheet.Cells(7,9).Value))'DATA FIM 

是否要为每个循环传递最大化SAP GUI?

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

是否要在循环之前最大化它是否足够? 每个带有数据的Excel行? 在FOR循环之前打开它还不够吗?

 session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/NMB51"
 session.findById(" wnd [0]")。sendVKey 0
 session.findById(" wnd [0]/tbar [1]/btn [17]")。press 

括号中是否需要零?

下一个i(0  )

亲切的问候,

Mateusz

一周热门 更多>