问题描述
我正在尝试使用来自此 Excel 工作表的数据自动执行交易 FBL5N
中的催款块:
然后我复制并粘贴串联以及与串联相关的发票。
问题是发票是动态的,每个客户的发票编号都不相同,所以我需要为此列进行动态选择,这样它就会复制,直到它面对一个黑色的列,偏移这个黑色并继续工作表的其余部分。
到目前为止的代码:
Sub Main()
'setting the connection with sap
Dim App,Connection,session As Object
Set SapGuiAuto = Getobject("SAPGUI")
Set App = SapGuiAuto.GetScriptingEngine
Set Connection = App.Children(0)
Set session = Connection.Children(0)
'launch a transaction
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nfbl5n"
session.findById("wnd[0]").sendVKey 0
Dim lastrow As Integer
Dim Z As Long
lastrow = Sheets("Main").Cells(Sheets("Main").Rows.Count,"A").End(xlUp).Row
For Z = 1 To lastrow
'fbl5n dunning block
session.findById("wnd[0]/usr/ctxtDD_KUNNR-LOW").Text = Cells(Z + 1,3).Value
session.findById("wnd[0]/usr/ctxtDD_BUKRS-LOW").Text = "2025"
session.findById("wnd[0]/usr/ctxtDD_KUNNR-LOW").caretPosition = 7
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/usr/lbl[9,5]").SetFocus
session.findById("wnd[0]/usr/lbl[9,5]").caretPosition = 6
session.findById("wnd[0]").sendVKey 2
session.findById("wnd[0]/tbar[1]/btn[38]").press
session.findById("wnd[1]/usr/ssub%_SUBSCREEN_FREESEL:SAPLSSEL:1105/btn%_%%DYN001_%_APP_%-VALU_PUSH").press
session.findById("wnd[2]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,0]").Text = Cells(Z + 1,13).Value
session.findById("wnd[2]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,1]").SetFocus
session.findById("wnd[2]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,1]").caretPosition = rng
session.findById("wnd[2]/tbar[0]/btn[24]").press
session.findById("wnd[2]/tbar[0]/btn[8]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]").sendVKey 5
session.findById("wnd[0]/tbar[1]/btn[45]").press
session.findById("wnd[1]/usr/ctxt*BSEG-MANSP").Text = "z"
session.findById("wnd[1]/usr/txt*BSEG-SGTXT").Text = Cells(Z + 1,11).Value
session.findById("wnd[1]/usr/txt*BSEG-SGTXT").SetFocus
session.findById("wnd[1]/usr/txt*BSEG-SGTXT").caretPosition = 6
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
Next
End Sub
Public Function rng()
Dim i As Long
Range("K2").Select
Do Until IsEmpty(ActiveCell)
Selection.copy
ActiveCell.Offset(1,0).Select
Loop
End Function
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)