Hallo GuiXT-Community: Ich habe mich an einem Script versucht, das Werte aus einem Excel-Sheet einliest und damit den TAC "LS01N" wiederholt befüllt. Eigentlich sollte das Script nach der letzten befüllten Excel-Zeile eine Meldung ausgeben, bricht aber immer mit "The Method got an invalid Argument" ab. Die Lagerplätze werden aber "richtig" angelegt. Das Problem ist also ein rein "kosmetisches". Wer kann mir hier eventuell weiterhelfen?
Mein Script:
'**************************************************************
' allg. SAPScript-Parameter
'**************************************************************
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
'**************************************************************
' Aufruf der Transaktion LS01N
'**************************************************************
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "/nLS01N"
session.findById("wnd[0]").sendVKey 0
'**************************************************************
' Parameter für XLSX-Datei und Befüllen der Felder
'**************************************************************
'Dim ExcelApp, ExcelWB, ExcelWS
set ExcelApp=createobject("Excel.Application")
ExcelApp.visible=true
set ExcelWB=ExcelApp.Workbooks.Open("P:\10062069\guixt\scripts - Entwicklung\Lagerplaetze und Veriffeld\Plaetze.xlsx")
set ExcelWS=ExcelWB.Worksheets("Tabelle1")
for i = 2 to ExcelApp.ActiveCell.SpecialCells(11).Row
for j = 1 to ExcelApp.ActiveCell.SpecialCells(11).Column
if j=1 then LGNUM = ExcelWS.Cells(i,j).Value
if j=2 then LGTYP = ExcelWS.Cells(i,j).Value
if j=3 then LGBER = ExcelWS.Cells(i,j).Value
if j=4 then LPTYP = ExcelWS.Cells(i,j).Value
if j=5 then LGPLA = ExcelWS.Cells(i,j).Value
next
session.findById("wnd[0]/usr/ctxtLAGP-LGNUM").text = LGNUM
session.findById("wnd[0]/usr/ctxtLAGP-LGTYP").text = LGTYP
session.findById("wnd[0]/usr/ctxtLAGP-LGPLA").text = LGPLA
session.findById("wnd[0]/usr/ctxtLAGP-LGPLA").setFocus
session.findById("wnd[0]/usr/ctxtLAGP-LGPLA").caretPosition = 10
session.findById("wnd[0]/usr/btnREFRESH").press
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsFUNC_TABSTRIP/tabpALLG/ssubD0400_S:SAPML01S:4001/ctxtLAGP-LGBER").text = LGBER
session.findById("wnd[0]/usr/tabsFUNC_TABSTRIP/tabpALLG/ssubD0400_S:SAPML01S:4001/ctxtLAGP-LPTYP").text = LPTYP
session.findById("wnd[0]/usr/tabsFUNC_TABSTRIP/tabpALLG/ssubD0400_S:SAPML01S:4001/txtLAGP-VERIF").text = LGPLA
session.findById("wnd[0]/usr/tabsFUNC_TABSTRIP/tabpALLG/ssubD0400_S:SAPML01S:4001/txtLAGP-VERIF").setFocus
session.findById("wnd[0]/usr/tabsFUNC_TABSTRIP/tabpALLG/ssubD0400_S:SAPML01S:4001/txtLAGP-VERIF").caretPosition = 10
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn[11]").press
next
msgbox "Alle Lagerplätze wurden angelegt."
ExcelWB.Close
ExcelApp.Quit