|
楼主 |
发表于 2010-7-21 09:53
|
显示全部楼层
总算找到了,excel 2003下运行通过,可是不知其所以然。发上来分享下。
下面的sub是录制的SAP script.上面的是设置如何连接SAP的。
Option Explicit
Public SapGuiAuto As Object, Applicat As Object, Connection As Object, Session As Object
Function Attach() As Boolean
On Error Resume Next
Set SapGuiAuto = GetObject("SAPGUI")
On Error GoTo 0
If SapGuiAuto Is Nothing Then
Attach = False
Exit Function
Else
Set Applicat = SapGuiAuto.GetScriptingEngine
On Error GoTo 0
End If
If Applicat Is Nothing Then
MsgBox "scripting disabled"
Attach = False
Exit Function
End If
If Applicat.Children.Count = 0 Then
Attach = False
Exit Function
Else
Set Connection = Applicat.Children(0)
On Error GoTo 0
End If
Set Session = Connection.Children(0)
On Error GoTo 0
If Session.ActiveWindow.Text = "SAP" Then
Attach = False
Exit Function
End If
Attach = True
End Function
Sub chkorentiend()
Dim i
If Attach Then
For i = 1 To 5
Session.findById("wnd[0]").maximize
Session.findById("wnd[0]/tbar[0]/okcd").Text = "/nlx03"
Session.findById("wnd[0]").sendVKey 0
Session.findById("wnd[0]/usr/ctxtS1_LGNUM").Text = Cells(1, 1)
Session.findById("wnd[0]/usr/ctxtS1_LGTYP-LOW").Text = "aqm"
Session.findById("wnd[0]/usr/ctxtS1_LGPLA-LOW").Text = "htk"
Session.findById("wnd[0]/usr/ctxtS1_LGPLA-LOW").SetFocus
Session.findById("wnd[0]/usr/ctxtS1_LGPLA-LOW").caretPosition = 3
Session.findById("wnd[0]/tbar[1]/btn[8]").press
Session.findById("wnd[0]/mbar/menu[4]/menu[5]/menu[2]/menu[2]").Select
Session.findById("wnd[1]/usr/sub:SAPLSPO5:0101/radSPOPLI-SELFLAG[1,0]").Select
Session.findById("wnd[1]/usr/sub:SAPLSPO5:0101/radSPOPLI-SELFLAG[1,0]").SetFocus
Session.findById("wnd[1]/tbar[0]/btn[0]").press
Session.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = "htk.xls"
Session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 7
Session.findById("wnd[1]/tbar[0]/btn[11]").press
Next i
End If
End Sub |
|