2020-09-06 05:55发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在使用VBA自动化SAP程序。
我使用SAP脚本记录了一些代码。 现在,我可以打开六个会话(SAP窗口),并在每个会话中放入一些数据。
我无法并行执行这些会话(一次运行所有会话)。 你能帮我吗?
谢谢,卢克
您好。
只有通过并行运行单独的Excel实例,才能运行由EXCEL VBA编码并行控制的所有会话。
一个Excel模板不能控制多个SAP会话。/p>
一个由多个模板使用的Excel实例不能控制一个以上的OLE-Connection到SAP会话。
每个Excel实例可以处理一个OLE-Connection到SAP会话。
p>
只需打开一个新的Excel实例并通过打开对话框从该实例中加载模板即可。
最诚挚的问候,
Holger
您应该启动自己的线程。 请在此也包含错误消息。 谢谢。
最诚挚的问候
嗨,Luc,
以下示例可能会对您有所帮助:
Script_parallel_sessions.vbs:
如果不是IsObject(application)那么
设置SapGuiAuto = GetObject(" SAPGUI")
设置应用程序= SapGuiAuto.GetScriptingEngine
如果结束
如果不是IsObject(连接),则
设置连接= application.Children(0)
如果不是IsObject(session)那么
设置会话= connection.Children(0)
对于mysession = 0到5
设置会话= connection.Children(int(mysession))
session.findById(" wnd [0]")。maximize
session.findById(" wnd [0]/tbar [0]/okcd")。text ="/img/nreiscn"
session.findById(" wnd [0]")。sendVKey 0
session.findById(" wnd [0]/usr/ctxtS_BUKRS-LOW")。text =" 2000"
session.findById(" wnd [0]/usr/chkP_USEPTN")。setFocus
session.findById(" wnd [0]/usr/chkP_USEPTN")。selected = true
session.findById(" wnd [0]/usr/chkP_GRID")。selected = true
session.findById(" wnd [0]/usr/chkP_DSPBUP")。selected = true
session.findById(" wnd [0]/usr/ctxtSO_PARTN-LOW")。text =" 1"
session.findById(" wnd [0]/usr/ctxtSO_PARTN-HIGH")。text =" 1000"
session.findById(" wnd [0]/usr/chkP_DSPBUP")。setFocus
如果mysession <5,则为session.createSession
wscript.sleep 2000
'session.findById(" wnd [0]/tbar [1]/btn [8]")。按
'msgbox"会话:"&mysession&vbcr&"时间:"&时间,vbInformation + vbMsgBoxForeground,"注释"
set wshell = createobject(" Wscript.Shell")
wshell.run""" c:\ tmp \ Script_parallel_Sessions_1.vbs"""&""和mysession
下一个
Script_parallel_sessions_1.vbs:
如果cstr(mysession)= cstr(wscript.arguments(0)),那么
session.findById(" wnd [0]/tbar [1]/btn [8]")。按
msgbox"会话:"和mysession&vbcr和"时间:"和时间,vbInformation + vbMsgBoxForeground,"注释"
Script_seriell_sessions.vbs:
'set wshell = createobject(" Wscript.Shell")
'wshell.run""" c:\ tmp \ Script_parallel_Sessions_1.vbs"""&""&mysession
但是您也可以在此链接中寻找其他建议:脚本语言
此致
ScriptMan
hi
我怎样才能将sap注释放在excel上,请帮助我紧急,我的电话是+919790971275
最多设置5个标签!
您好。
只有通过并行运行单独的Excel实例,才能运行由EXCEL VBA编码并行控制的所有会话。
一个Excel模板不能控制多个SAP会话。/p>
一个由多个模板使用的Excel实例不能控制一个以上的OLE-Connection到SAP会话。
每个Excel实例可以处理一个OLE-Connection到SAP会话。
p>
只需打开一个新的Excel实例并通过打开对话框从该实例中加载模板即可。
最诚挚的问候,
Holger
您好。
您应该启动自己的线程。 请在此也包含错误消息。 谢谢。
最诚挚的问候
Holger
嗨,Luc,
以下示例可能会对您有所帮助:
Script_parallel_sessions.vbs:
如果不是IsObject(application)那么
设置SapGuiAuto = GetObject(" SAPGUI")
设置应用程序= SapGuiAuto.GetScriptingEngine
如果结束
如果不是IsObject(连接),则
设置连接= application.Children(0)
如果结束
如果不是IsObject(session)那么
设置会话= connection.Children(0)
如果结束
对于mysession = 0到5
设置会话= connection.Children(int(mysession))
session.findById(" wnd [0]")。maximize
session.findById(" wnd [0]/tbar [0]/okcd")。text ="/img/nreiscn"
session.findById(" wnd [0]")。sendVKey 0
session.findById(" wnd [0]/usr/ctxtS_BUKRS-LOW")。text =" 2000"
session.findById(" wnd [0]/usr/chkP_USEPTN")。setFocus
session.findById(" wnd [0]/usr/chkP_USEPTN")。selected = true
session.findById(" wnd [0]/usr/chkP_GRID")。selected = true
session.findById(" wnd [0]/usr/chkP_DSPBUP")。selected = true
session.findById(" wnd [0]/usr/ctxtSO_PARTN-LOW")。text =" 1"
session.findById(" wnd [0]/usr/ctxtSO_PARTN-HIGH")。text =" 1000"
session.findById(" wnd [0]/usr/chkP_DSPBUP")。setFocus
如果mysession <5,则为session.createSession
wscript.sleep 2000
'session.findById(" wnd [0]/tbar [1]/btn [8]")。按
'msgbox"会话:"&mysession&vbcr&"时间:"&时间,vbInformation + vbMsgBoxForeground,"注释"
set wshell = createobject(" Wscript.Shell")
wshell.run""" c:\ tmp \ Script_parallel_Sessions_1.vbs"""&""和mysession
下一个
Script_parallel_sessions_1.vbs:
如果不是IsObject(application)那么
设置SapGuiAuto = GetObject(" SAPGUI")
设置应用程序= SapGuiAuto.GetScriptingEngine
如果结束
如果不是IsObject(连接),则
设置连接= application.Children(0)
如果结束
对于mysession = 0到5
如果cstr(mysession)= cstr(wscript.arguments(0)),那么
设置会话= connection.Children(int(mysession))
session.findById(" wnd [0]/tbar [1]/btn [8]")。按
msgbox"会话:"和mysession&vbcr和"时间:"和时间,vbInformation + vbMsgBoxForeground,"注释"
如果结束
下一个
Script_seriell_sessions.vbs:
如果不是IsObject(application)那么
设置SapGuiAuto = GetObject(" SAPGUI")
设置应用程序= SapGuiAuto.GetScriptingEngine
如果结束
如果不是IsObject(连接),则
设置连接= application.Children(0)
如果结束
如果不是IsObject(session)那么
设置会话= connection.Children(0)
如果结束
对于mysession = 0到5
设置会话= connection.Children(int(mysession))
session.findById(" wnd [0]")。maximize
session.findById(" wnd [0]/tbar [0]/okcd")。text ="/img/nreiscn"
session.findById(" wnd [0]")。sendVKey 0
session.findById(" wnd [0]/usr/ctxtS_BUKRS-LOW")。text =" 2000"
session.findById(" wnd [0]/usr/chkP_USEPTN")。setFocus
session.findById(" wnd [0]/usr/chkP_USEPTN")。selected = true
session.findById(" wnd [0]/usr/chkP_GRID")。selected = true
session.findById(" wnd [0]/usr/chkP_DSPBUP")。selected = true
session.findById(" wnd [0]/usr/ctxtSO_PARTN-LOW")。text =" 1"
session.findById(" wnd [0]/usr/ctxtSO_PARTN-HIGH")。text =" 1000"
session.findById(" wnd [0]/usr/chkP_DSPBUP")。setFocus
如果mysession <5,则为session.createSession
wscript.sleep 2000
session.findById(" wnd [0]/tbar [1]/btn [8]")。按
msgbox"会话:"和mysession&vbcr和"时间:"和时间,vbInformation + vbMsgBoxForeground,"注释"
'set wshell = createobject(" Wscript.Shell")
'wshell.run""" c:\ tmp \ Script_parallel_Sessions_1.vbs"""&""&mysession
下一个
但是您也可以在此链接中寻找其他建议:脚本语言
此致
ScriptMan
hi
我怎样才能将sap注释放在excel上,请帮助我紧急,我的电话是+919790971275
一周热门 更多>