Das hier ist ein Beispiel, wie ich eine Exceldatei einbinde.
Sie liegt auf Laufwerk "P" und heißt "meld".
Folgende Parameter übernimmt er aus der Excel: sub doit (kurztext,technplatz,equi)
Die Namen habe ich im VBS ohne " ersetzt.
Er öffnet damit die Tabelle und übernimmt sie.
Am Ende der Excel habe ich ein "Ende" geschrieben, damit das Script da aufhört. Ich hoffe ich konnte helfen.
gruß
'**************************************************************
' 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
'**************************************************************
' Parameter für XLS-Datei
'**************************************************************
Dim ExcelApp, ExcelWB, ExcelWS
set ExcelApp=createobject("Excel.Application")
ExcelApp.visible=true
set ExcelWB=ExcelApp.Workbooks.Open("p:\meld\meld.xls")
set ExcelWS=ExcelWB.Worksheets("Tabelle1")
'**************************************************************
' Aufruf der Transaktion iw21
'**************************************************************
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "/niw21"
session.findById("wnd[0]").sendVKey 0
'**************************************************************
' XLS-Datei einlesen
'**************************************************************
zeile=1
do while true
zelle1=ExcelApp.Cells(zeile,1).Value
zelle2=ExcelApp.Cells(zeile,2).Value
zelle3=ExcelApp.Cells(zeile,3).Value
if zelle1 <> "ENDE" Then
call doit (zelle1,zelle2,zelle3)
else
msgbox "Sie haben jetzt alle Meldungen angelegt!!!"
exit do
end if
zeile=zeile+1
loop
ExcelWB.Close
ExcelApp.Quit
'**************************************************************
' Trancation einlesen
'**************************************************************
sub doit (kurztext,technplatz,equi)
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
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "/niw21"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtRIWO00-QMART").text = "a2"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7715/cntlTEXT/shellcont/shell").text = "ort" + vbCr + "zeit" + vbCr + "" + vbCr + ""
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7715/cntlTEXT/shellcont/shell").setSelectionIndexes 9,9
session.findById("wnd[0]/usr/subSCREEN_1:SAPLIQS0:1050/txtVIQMEL-QMTXT").text = kurztext
session.findById("wnd[0]/usr/subSCREEN_1:SAPLIQS0:1050/txtVIQMEL-QMTXT").caretPosition = 13
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02").select
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7322/subOBJEKT:SAPLIWO1:0120/ctxtRIWO1-TPLNR").text = technplatz
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7322/subOBJEKT:SAPLIWO1:0120/ctxtRIWO1-EQUNR").text = equi
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7322/subOBJEKT:SAPLIWO1:0120/ctxtRIWO1-EQUNR").setFocus
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7322/subOBJEKT:SAPLIWO1:0120/ctxtRIWO1-EQUNR").caretPosition = 8
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn[11]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
end sub