下载Excel和"另存为"对话框

2020-09-15 09:45发布

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

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


cuserskan117desktopmy-testmy-testing.txt 尊敬的团队,

下面是我的脚本,我将数据从excel复制到SAP,并尝试以excel格式下载报告。

当我尝试下载"另存为"弹出框时,脚本随后未运行。

我已经附上了我的剧本。 有人可以帮我在excel中下载另存为文件吗?

子Portage_R17_VENDOR_DEBIT()

Application.DisplayAlerts = False
Application.ScreenUpdating = False

如果不是IsObject(Application1),则
设置SapGuiAuto = GetObject(" SAPGUI")
设置Application1 = SapGuiAuto.GetScriptingEngine
如果,如果不是IsObject(Connection1),则
结束 Connection1 = Application1.Children(0)
如果不是IsObject(session),则结束
设置会话= Connection1.Children(0),如果 WScript.ConnectObject会话,"在"上
WScript.ConnectObject Application1,"在"上
如果结束

session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/NFBL3N"
session.findById(" wnd [0]")。sendVKey 0

session.findById(" wnd [0]/usr/btn%_SD_SAKNR _%_ APP _%-VALU_PUSH")。press
session.findById(" wnd [1]/tbar [0]/btn [16]" ).press
ThisWorkbook.Activate
Worksheets(" Report")。Range(" A1")。Select
ActiveSheet.Range(" A1")。AutoFilter字段:= 1,Criteria1:=" < >"
Range(Selection,Selection.End(xlDown))。Offset(1,0).SpecialCells(xlCellTypeVisible).Select
Selection.Copy
session.findById(" wnd [1]/tbar [0]/btn [24]")。按
session.findById(" wnd [1]")。sendVKey 8

ThisWorkbook.Activate
Selection.AutoFilter
Range(" A1")。Select


session.findById(" wnd [0]/usr/btn%_SD_BUKRS _%_ APP _%-VALU_PUSH")。press
session.findById(" wnd [1]/tbar [0]/btn [ 16]")。按
ThisWorkbook.Activate
Worksheets(" Report")。Range(" B1")。Select
ActiveSheet.Range(" B1")。AutoFilter字段:= 2,条件1: =" <>"
Range(Selection,Selection.End(xlDown))。Offset(1,0).SpecialCells(xlCellTypeVisible).Select
Selection.Copy
session.findById(" wnd [1 ]/tbar [0]/btn [24]")。按
session.findById(" wnd [1]")。sendVKey 8

ThisWorkbook.Activate
Selection.AutoFilter
Worksheets(" Report")。Range(" A1")。Select

RPT_DATE = ThisWorkbook.Worksheets(" Report")。Range(" D2")
session.findById(" wnd [0]/usr/ctxtPA_STIDA")。Text = RPT_DATE

布局= ThisWorkbook.Worksheets(" Report")。Range(" C2")
session.findById(" wnd [0]/usr/ctxtPA_VARI")。Text = Layout
session.findById(" wnd [0]/tbar [1]/btn [8]")。按

OUTPUT_PATH = Sheet1.TextBox1.Text
FILENAME =" Download"&" .txt"

session.findById(" wnd [0]/mbar/menu [0]/menu [3]/menu [1]")。选择

 
session.findById(" wnd [1]/tbar [0]/btn [0]")。按

cuserskan117desktopmy-testmy-testing.txt (2.2 kB)

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

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


cuserskan117desktopmy-testmy-testing.txt 尊敬的团队,

下面是我的脚本,我将数据从excel复制到SAP,并尝试以excel格式下载报告。

当我尝试下载"另存为"弹出框时,脚本随后未运行。

我已经附上了我的剧本。 有人可以帮我在excel中下载另存为文件吗?

子Portage_R17_VENDOR_DEBIT()

Application.DisplayAlerts = False
Application.ScreenUpdating = False

如果不是IsObject(Application1),则
设置SapGuiAuto = GetObject(" SAPGUI")
设置Application1 = SapGuiAuto.GetScriptingEngine
如果,如果不是IsObject(Connection1),则
结束 Connection1 = Application1.Children(0)
如果不是IsObject(session),则结束
设置会话= Connection1.Children(0),如果 WScript.ConnectObject会话,"在"上
WScript.ConnectObject Application1,"在"上
如果结束

session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/NFBL3N"
session.findById(" wnd [0]")。sendVKey 0

session.findById(" wnd [0]/usr/btn%_SD_SAKNR _%_ APP _%-VALU_PUSH")。press
session.findById(" wnd [1]/tbar [0]/btn [16]" ).press
ThisWorkbook.Activate
Worksheets(" Report")。Range(" A1")。Select
ActiveSheet.Range(" A1")。AutoFilter字段:= 1,Criteria1:=" < >"
Range(Selection,Selection.End(xlDown))。Offset(1,0).SpecialCells(xlCellTypeVisible).Select
Selection.Copy
session.findById(" wnd [1]/tbar [0]/btn [24]")。按
session.findById(" wnd [1]")。sendVKey 8

ThisWorkbook.Activate
Selection.AutoFilter
Range(" A1")。Select


session.findById(" wnd [0]/usr/btn%_SD_BUKRS _%_ APP _%-VALU_PUSH")。press
session.findById(" wnd [1]/tbar [0]/btn [ 16]")。按
ThisWorkbook.Activate
Worksheets(" Report")。Range(" B1")。Select
ActiveSheet.Range(" B1")。AutoFilter字段:= 2,条件1: =" <>"
Range(Selection,Selection.End(xlDown))。Offset(1,0).SpecialCells(xlCellTypeVisible).Select
Selection.Copy
session.findById(" wnd [1 ]/tbar [0]/btn [24]")。按
session.findById(" wnd [1]")。sendVKey 8

ThisWorkbook.Activate
Selection.AutoFilter
Worksheets(" Report")。Range(" A1")。Select

RPT_DATE = ThisWorkbook.Worksheets(" Report")。Range(" D2")
session.findById(" wnd [0]/usr/ctxtPA_STIDA")。Text = RPT_DATE

布局= ThisWorkbook.Worksheets(" Report")。Range(" C2")
session.findById(" wnd [0]/usr/ctxtPA_VARI")。Text = Layout
session.findById(" wnd [0]/tbar [1]/btn [8]")。按

OUTPUT_PATH = Sheet1.TextBox1.Text
FILENAME =" Download"&" .txt"

session.findById(" wnd [0]/mbar/menu [0]/menu [3]/menu [1]")。选择

 
session.findById(" wnd [1]/tbar [0]/btn [0]")。按

cuserskan117desktopmy-testmy-testing.txt (2.2 kB)
付费偷看设置
发送
3条回答
蓋茨
1楼-- · 2020-09-15 10:31

你好Kesavan,

欢迎使用SAP社区。

请首先尝试这种方式
https://answers.sap.com/questions/556795/how-to-handle-a-message-box-in-vbscript.html?childToView=558829#answer -558829
也许在您的情况下,此设置提供了可以通过SAP GUI脚本直接控制对话框的可能性。

如果不可能,则可以使用其他方式,例如 通过AutoIt
https://blogs.sap。 com/2016/02/29/control-saveas-dialog-with-autoit /

或者,如果您无法使用AutoIt,则可以使用棘手的VBScript方法
https://archive.sap.com/discussions/thread/3450067
https://archive.sap.com/discussions/thread/3448546

让我们知道您的结果。

干杯
斯特凡

小熊yu生菜
2楼-- · 2020-09-15 10:42

你好斯特凡,

感谢您的回复和参考。

我尝试了脚本,并顺利通过了。

即,如果我在上面运行记录的SAP脚本,并且弹出SAVE_AS窗口,则我的脚本将冻结,然后才能调用Save_as宏。 我在不同的模块中创建了Auto_SaveAs_SAP,并在SaveAS窗口弹出后调用它,但是只要SaveAs框完全停止了代码,代码就会立即停止,我需要手动保存或取消它,然后仅转到下一个代码。 我认为我在这里错过了一些东西,但不确定我在哪里错过了..你能帮忙.....

RPT_DATE = ThisWorkbook.Worksheets(" Report")。Range(" D2")
session.findById(" wnd [0]/usr/ctxtPA_STIDA")。Text = RPT_DATE

布局= ThisWorkbook.Worksheets(" Report")。Range(" C2")
session.findById(" wnd [0]/usr/ctxtPA_VARI")。Text = Layout
session.findById(" wnd [0]/tbar [1]/btn [8]")。按

OUTPUT_PATH = Sheet1.TextBox1.Text
文件名="下载"和" .xls"

 session.findById(" wnd [0]/mbar/menu [0]/menu [3]/menu [1]")。选择
 Application.Run" Auto_SaveAs_SAP()" 

session.findById(" wnd [1]/tbar [0]/btn [0]")。按

SC_Yao
3楼-- · 2020-09-15 10:38

你好Kesavan,

据我所知

VBA不支持多线程。 霍尔格·科恩写道:

请尝试一下,让我们知道您的结果。

干杯
Stefan

一周热门 更多>