代码结束后,如何防止SAP打开导出的文件?

时间:2019-05-16 14:46:09

标签: excel vba sap

该代码将打开事务,并将文件与SAP中的数据一起保存。 问题在于执行代码时,导出的文件开始自行打开。

Sub MRN()   
Dim SapGuiAuto
Dim SetApp
Dim Connection
Dim Session

   'connecting to SAP

Set SapGuiAuto = GetObject("SAPGUI")
Set SetApp = SapGuiAuto.GetScriptingEngine
Set Connection = SetApp.Children(0)
Set Session = Connection.Children(0)

Plant = "Ru64"
My_Path = "N:\OF\Order Handling\reserve\"

' entering data to the transaction

Session.FindById("wnd[0]").Maximize
Session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nzcor_mrn1"
Session.FindById("wnd[0]").SendVKey 0
Session.FindById("wnd[0]/usr/ctxtP_BUKRS").Text = Plant
Session.FindById("wnd[0]/usr/ctxtP_STDAT").Text = "30.04.2019"
Session.FindById("wnd[0]/usr/txt%_S_WERKS_%_APP_%-TEXT").SetFocus
Session.FindById("wnd[0]/usr/txt%_S_WERKS_%_APP_%-TEXT").CaretPosition = 5
Session.FindById("wnd[0]/usr/btn%P123019_1000").Press
    Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BMATP").Selected = False
    Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BBPRH").Selected = True
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BVMMP").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BVJMP").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BSTPS").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BVMSP").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BVJSP").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BVERP").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BVMVP").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BVJVP").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BBPRS").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BBPS1").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BVJBS").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BBPH1").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1101/tabpPIP/ssubSUB_1109:SAPLMYPOP:1103/chkSNIWE-BVJBH").Selected = False
Session.FindById("wnd[1]/usr/radSNIWE-BREPV").SetFocus
Session.FindById("wnd[1]/usr/radSNIWE-BREPV").Select
Session.FindById("wnd[1]/usr/radSNIWE-BNIWE").SetFocus
Session.FindById("wnd[1]/usr/radSNIWE-BNIWE").Select
Session.FindById("wnd[1]/tbar[0]/btn[0]").Press
Session.FindById("wnd[0]/usr/radP_VBROG").Select
Session.FindById("wnd[0]/usr/chkP_UPDAT").SetFocus
Session.FindById("wnd[0]/usr/chkP_UPDAT").Selected = True
Session.FindById("wnd[0]/usr/btn%P176039_1000").Press
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1301/tabpPIP/ssubSUB_1309:SAPLMYPOP:1303/chkSNIWE-UBPRS").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1301/tabpPIP/ssubSUB_1309:SAPLMYPOP:1303/chkSNIWE-UBPS1").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1301/tabpPIP/ssubSUB_1309:SAPLMYPOP:1303/chkSNIWE-UVJBS").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1301/tabpPIP/ssubSUB_1309:SAPLMYPOP:1303/chkSNIWE-UBPRH").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1301/tabpPIP/ssubSUB_1309:SAPLMYPOP:1303/chkSNIWE-UBPH1").Selected = True
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1301/tabpPIP/ssubSUB_1309:SAPLMYPOP:1303/chkSNIWE-UVJBH").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1301/tabpPIP/ssubSUB_1309:SAPLMYPOP:1303/chkSNIWE-CHDOC").Selected = False
Session.FindById("wnd[1]/usr/tabsTABSTRIP_1301/tabpPIP/ssubSUB_1309:SAPLMYPOP:1303/chkSNIWE-CHDOC").SetFocus
Session.FindById("wnd[1]/tbar[0]/btn[0]").Press
Session.FindById("wnd[0]/usr/ctxtP_VARI").SetFocus
Session.FindById("wnd[0]/usr/ctxtP_VARI").CaretPosition = 0
Session.FindById("wnd[0]").SendVKey 2
Session.FindById("wnd[0]").SendVKey 4
Session.FindById("wnd[1]/usr/lbl[1,14]").SetFocus
Session.FindById("wnd[1]/usr/lbl[1,14]").CaretPosition = 6
Session.FindById("wnd[1]").SendVKey 2
Session.FindById("wnd[0]/usr/ctxtP_VARI").Text = "/DETAIL_RU"
Session.FindById("wnd[0]/tbar[1]/btn[8]").Press





'Saving the file
Session.FindById("wnd[0]/tbar[1]/btn[43]").Press
Session.FindById("wnd[1]/usr/ctxtDY_FILENAME").Text = Plant & ".XLSX"
Session.FindById("wnd[1]/usr/ctxtDY_PATH").Text = My_Path

Session.FindById("wnd[1]/usr/ctxtDY_PATH").CaretPosition = 0
Session.FindById("wnd[1]").SendVKey 4
Session.FindById("wnd[2]/usr/ctxtDY_PATH").SetFocus
Session.FindById("wnd[2]/usr/ctxtDY_PATH").CaretPosition = 0
Session.FindById("wnd[2]").SendVKey 4
Session.FindById("wnd[3]/usr/ctxtDY_PATH").SetFocus
Session.FindById("wnd[3]/usr/ctxtDY_PATH").CaretPosition = 0
Session.FindById("wnd[3]/tbar[0]/btn[0]").Press
Session.FindById("wnd[2]/tbar[0]/btn[11]").Press
Session.FindById("wnd[1]/tbar[0]/btn[0]").Press




If InStr(1, Session.FindById("wnd[0]/sbar").Text, "exist", 1) <> 0 Then

Application.SendKeys ("^s")
Application.SendKeys ("^s")
Application.SendKeys ("^s")
Application.SendKeys ("^s")
End If

End Sub

1)我尝试使用代码关闭导出文件。并且在代码运行时,它表明此文件已关闭。但是,代码结束后它将再次打开。

2)我也删除了导出文件,但是随后出现一条消息,提示找不到该文件。 显然,SAP在执行代码后会启动它导入的所有内容。

上面的代码只是整个程序的一小部分。所以最后,我弹出了一堆这样的文件。

如何阻止此令人讨厌的功能?

0 个答案:

没有答案