VBA-SAP脚本错误处理

2020-08-30 07:02发布

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

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


大家好,


我的问题是有关VBA中有关SAP脚本的错误处理。
在下面您可能会看到我的代码(无法正常工作)
我尝试了很多次,以使其更好,但不幸的是 我失败了

我想根据excel新日期更改SAP中的订购日期,然后将SAP以前的日期复制到excel(现有交货日期)中。 更好地了解才知道呢?

我们将非常感谢您的帮助,在此先感谢您。

子提取POOADataScriptd()

     昏暗的excelApp作为应用程序
     Dim excelWb作为本工作簿
     昏暗的脚本作为工作表
     昏暗脚本数据作为范围
     昏暗脚本行范围
     昏暗会话作为对象
     昏暗的系统作为字符串
     昏暗documentNumber作为字符串
     暗淡项目作为字符串
     昏暗细胞作为变体
    
     设置excelApp =应用程序
     设置excelWb = excelApp.ThisWorkbook
     设置scriptWs = excelWb.Sheets("原始数据")
    
     设置scriptData = scriptWs.Range(" A1")。CurrentRegion
     设置scriptData = scriptData.Offset(1、0).Resize(scriptData.Rows.Count-1,scriptData.Columns.Count)
    
     excelApp.ScreenUpdating = False
     excelApp.ScreenUpdating = True


 关于错误继续

     设置会话= connectToOpenSAPSession
     session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/nme23n"
     session.findById(" wnd [0]")。sendVKey 0

     对于每个scriptRow在scriptData.Rows中
         检查= scriptRow.Resize(1,1).Offset(0,7).Value
         documentNumber = scriptRow.Resize(1,1).Value
         item = scriptRow.Resize(1,1).Offset(0,1).Value
         NewDate = scriptRow.Resize(1,1).Offset(0,2).Value


        
         如果Right(item,1)=" 0",则item = Left(item,Len(item)-1)
         如果Len(item)= 1那么item = item
         如果Len(item)= 2那么item = item
         如果Len(item)= 3那么item = item


 项目=项目-1
 如果documentNumber <>""然后


             session.findById(" wnd [0]/tbar [1]/btn [17]")。按
             session.findById(" wnd [1]/usr/subSUB0:SAPLMEGUI:0003/ctxtMEPO_SELECT-EBELN")。Text = documentNumber
             session.findById(" wnd [1]/tbar [0]/btn [0]")。按


         如果IsObject(WScript)然后
         WScript.ConnectObject会话,"打开"
         WScript.ConnectObject应用程序,"打开"
         万一
         session.findById(" wnd [0]")。maximize
         session.findById(" wnd [0]/tbar [1]/btn [7]")。按


 scriptRow.Resize(1,1).Offset(0,6).Value = session.findById(" wnd [0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:  SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-EEIND [9,"&item&"]")。文本

 如果Err.Number <> 0然后
 scriptRow.Resize(1,1).Offset(0,6).Value = session.findById(" wnd [0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:  SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-EEIND [9,"&item&"]")。文本
 scriptRow.Resize(1,1).Offset(0,7).Value ="请检查一下以确保进行更改。"
 session.findById(" wnd [0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-EEIND [9,&item&"]  ").Text = NewDate
 session.findById(" wnd [0]/tbar [1]/btn [7]")。按
 其他
 session.findById(" wnd [0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-EEIND [9,&item&"]  ").Text = NewDate
 session.findById(" wnd [0]")。sendVKey 0
 session.findById(" wnd [0]")。sendVKey 0
 scriptRow.Resize(1,1).Offset(0,7).Value ="日期已更新"
 session.findById(" wnd [0]/tbar [1]/btn [7]")。按
 session.findById(" wnd [1]/usr/btnSPOP-OPTION1")。press
 万一


 万一
 下一个脚本行


     excelApp.ScreenUpdating = True
     excelApp.ScreenUpdating = True
 结束
1.jpg (21.1 kB)

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

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


大家好,


我的问题是有关VBA中有关SAP脚本的错误处理。
在下面您可能会看到我的代码(无法正常工作)
我尝试了很多次,以使其更好,但不幸的是 我失败了

我想根据excel新日期更改SAP中的订购日期,然后将SAP以前的日期复制到excel(现有交货日期)中。 更好地了解才知道呢?

我们将非常感谢您的帮助,在此先感谢您。

子提取POOADataScriptd()

     昏暗的excelApp作为应用程序
     Dim excelWb作为本工作簿
     昏暗的脚本作为工作表
     昏暗脚本数据作为范围
     昏暗脚本行范围
     昏暗会话作为对象
     昏暗的系统作为字符串
     昏暗documentNumber作为字符串
     暗淡项目作为字符串
     昏暗细胞作为变体
    
     设置excelApp =应用程序
     设置excelWb = excelApp.ThisWorkbook
     设置scriptWs = excelWb.Sheets("原始数据")
    
     设置scriptData = scriptWs.Range(" A1")。CurrentRegion
     设置scriptData = scriptData.Offset(1、0).Resize(scriptData.Rows.Count-1,scriptData.Columns.Count)
    
     excelApp.ScreenUpdating = False
     excelApp.ScreenUpdating = True


 关于错误继续

     设置会话= connectToOpenSAPSession
     session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/nme23n"
     session.findById(" wnd [0]")。sendVKey 0

     对于每个scriptRow在scriptData.Rows中
         检查= scriptRow.Resize(1,1).Offset(0,7).Value
         documentNumber = scriptRow.Resize(1,1).Value
         item = scriptRow.Resize(1,1).Offset(0,1).Value
         NewDate = scriptRow.Resize(1,1).Offset(0,2).Value


        
         如果Right(item,1)=" 0",则item = Left(item,Len(item)-1)
         如果Len(item)= 1那么item = item
         如果Len(item)= 2那么item = item
         如果Len(item)= 3那么item = item


 项目=项目-1
 如果documentNumber <>""然后


             session.findById(" wnd [0]/tbar [1]/btn [17]")。按
             session.findById(" wnd [1]/usr/subSUB0:SAPLMEGUI:0003/ctxtMEPO_SELECT-EBELN")。Text = documentNumber
             session.findById(" wnd [1]/tbar [0]/btn [0]")。按


         如果IsObject(WScript)然后
         WScript.ConnectObject会话,"打开"
         WScript.ConnectObject应用程序,"打开"
         万一
         session.findById(" wnd [0]")。maximize
         session.findById(" wnd [0]/tbar [1]/btn [7]")。按


 scriptRow.Resize(1,1).Offset(0,6).Value = session.findById(" wnd [0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:  SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-EEIND [9,"&item&"]")。文本

 如果Err.Number <> 0然后
 scriptRow.Resize(1,1).Offset(0,6).Value = session.findById(" wnd [0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:  SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-EEIND [9,"&item&"]")。文本
 scriptRow.Resize(1,1).Offset(0,7).Value ="请检查一下以确保进行更改。"
 session.findById(" wnd [0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-EEIND [9,&item&"]  ").Text = NewDate
 session.findById(" wnd [0]/tbar [1]/btn [7]")。按
 其他
 session.findById(" wnd [0]/usr/subSUB0:SAPLMEGUI:0013/subSUB2:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1211/tblSAPLMEGUITC_1211/ctxtMEPO1211-EEIND [9,&item&"]  ").Text = NewDate
 session.findById(" wnd [0]")。sendVKey 0
 session.findById(" wnd [0]")。sendVKey 0
 scriptRow.Resize(1,1).Offset(0,7).Value ="日期已更新"
 session.findById(" wnd [0]/tbar [1]/btn [7]")。按
 session.findById(" wnd [1]/usr/btnSPOP-OPTION1")。press
 万一


 万一
 下一个脚本行


     excelApp.ScreenUpdating = True
     excelApp.ScreenUpdating = True
 结束
1.jpg (21.1 kB)
付费偷看设置
发送
1条回答
CJones
1楼-- · 2020-08-30 08:05

代替

出错时恢复下一个

尝试:

子代码()
 发生错误时,请转到error_hand:'以处理意外错误
 反馈="意外错误"
 ...
 '码
 如果这里有错误
    feedack ="这里错误"
    转到error_hand'以处理预期的错误
 万一
 ...
 error_hand:
    msgbox反馈
    出口子
 完成:
    msgbox"完成"
    出口子
 结束子
  

一周热门 更多>