VBA代码将SAP消息写入Excel单元格

2020-09-10 10:54发布

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

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


大家好! 我是VBA的新手,我非常兴奋地学习如何通过Excel电子表格中包含的数据将代码和脚本编写任务写入SAP。 我设法编写了一些代码来完成我所需要的,但是遇到了障碍。 当脚本运行并从Excel数据逐行获取数据并将其发送到SAP时,我希望在进行某些事务时,数据旁边的单元格在SAP GUI的左下方记录消息。 例如,如果更改了FLOC,则会成功保存FLOC XXXXXX之类的消息。"我们将不胜感激。以下是我正在使用的代码

 Sub ChangeTaskListDescription()

   设置输出表= ActiveSheet
   设置outputworkbook = ActiveWorkbook
   setto = Range(" Setto")。Value
   startstop =真

   将myFile设为字符串,将文本设为字符串,将文本行设为字符串,将文本行设为字符串,将posLat设为整数,将posLong设为整数

   SAPGuiConnect

   如果currenttransaction()<>" SESSION_MANAGER"然后
     MsgBox"请使SAP进入"湖景""
   其他

     达罗= 2
     Session.findById(" wnd [0]")。maximize
     Session.findById(" wnd [0]/tbar [0]/okcd")。text =" IA12"
     Session.findById(" wnd [0]")。sendVKey 0
     做While Cells(darow,5).Value <>"" And startstop

       如果Cells(darow,5).Value =" T"然后
         DoEvents
         starttime = Now()
         maintitem = Cells(darow,3)。值
         FunLoc = Cells(darow,4)。值
         GrpCounter =单元格(darow,7)。值
         TLDesc = Cells(darow,8)。值
         'theFilename = YourDocuments()&" SAP \"&maintitem&"("&GrpCounter&").txt"

         'Session.findById(" wnd [0]/tbar [1]/btn [6]")。press
         Session.findById(" wnd [0]/usr/ctxtRC27E-TPLNR")。text = FunLoc
         Session.findById(" wnd [0]/usr/txtRC271-PLNAL")。text = GrpCounter
         Session.findById(" wnd [0]/tbar [1]/btn [6]")。press
         Session.findById(" wnd [0]/usr/txtPLKOD-KTEXT")。text = TLDesc
         Session.findById(" wnd [0]/tbar [0]/btn [11]")。press

         关于错误继续

       万一
       达罗=达罗+ 1
     循环
     Session.findById(" wnd [0]/tbar [0]/btn [15]")。press
   万一

   SAPGuiDisconnect

 结束

预先感谢您可能提供的帮助以帮助我完成此任务。

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

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


大家好! 我是VBA的新手,我非常兴奋地学习如何通过Excel电子表格中包含的数据将代码和脚本编写任务写入SAP。 我设法编写了一些代码来完成我所需要的,但是遇到了障碍。 当脚本运行并从Excel数据逐行获取数据并将其发送到SAP时,我希望在进行某些事务时,数据旁边的单元格在SAP GUI的左下方记录消息。 例如,如果更改了FLOC,则会成功保存FLOC XXXXXX之类的消息。"我们将不胜感激。以下是我正在使用的代码

 Sub ChangeTaskListDescription()

   设置输出表= ActiveSheet
   设置outputworkbook = ActiveWorkbook
   setto = Range(" Setto")。Value
   startstop =真

   将myFile设为字符串,将文本设为字符串,将文本行设为字符串,将文本行设为字符串,将posLat设为整数,将posLong设为整数

   SAPGuiConnect

   如果currenttransaction()<>" SESSION_MANAGER"然后
     MsgBox"请使SAP进入"湖景""
   其他

     达罗= 2
     Session.findById(" wnd [0]")。maximize
     Session.findById(" wnd [0]/tbar [0]/okcd")。text =" IA12"
     Session.findById(" wnd [0]")。sendVKey 0
     做While Cells(darow,5).Value <>"" And startstop

       如果Cells(darow,5).Value =" T"然后
         DoEvents
         starttime = Now()
         maintitem = Cells(darow,3)。值
         FunLoc = Cells(darow,4)。值
         GrpCounter =单元格(darow,7)。值
         TLDesc = Cells(darow,8)。值
         'theFilename = YourDocuments()&" SAP \"&maintitem&"("&GrpCounter&").txt"

         'Session.findById(" wnd [0]/tbar [1]/btn [6]")。press
         Session.findById(" wnd [0]/usr/ctxtRC27E-TPLNR")。text = FunLoc
         Session.findById(" wnd [0]/usr/txtRC271-PLNAL")。text = GrpCounter
         Session.findById(" wnd [0]/tbar [1]/btn [6]")。press
         Session.findById(" wnd [0]/usr/txtPLKOD-KTEXT")。text = TLDesc
         Session.findById(" wnd [0]/tbar [0]/btn [11]")。press

         关于错误继续

       万一
       达罗=达罗+ 1
     循环
     Session.findById(" wnd [0]/tbar [0]/btn [15]")。press
   万一

   SAPGuiDisconnect

 结束

预先感谢您可能提供的帮助以帮助我完成此任务。

付费偷看设置
发送
1条回答
Alawn_Xu
1楼-- · 2020-09-10 10:59

贝弗利你好,

欢迎使用SAP社区。

您可以使用以下代码阅读状态栏:

 session.findById(" wnd  [0]/sbar/pane [0]")。Text 

因此您可以在代码中执行以下操作:

 StatusBarText = session.findById(" wnd [0]/sbar/pane [0]")。文本
 如果InStr(StatusBarText,"成功保存"),则
   '如果成功,请在这里输入您的代码
 其他
   '如果失败,请在这里输入您的代码
 如果

让我们知道您的结果,请结束。

最诚挚的问候
Stefan

一周热门 更多>