ich habe derzeit ein Problem mit einer Makro-Erstellung.
Ich habe erste Teilerfolge erzielen können. (Verbindung zwischen PCOMM und Excel funktioniert, für mich bis dato Neuland).
Ich kann Daten aus Spalten direkt in den IBM-Host übertragen, dies funktioniert aber nur über "SendKeys".
Ich würde aber gerne den Befehl "GetText" nutzen, um eine IF-Prüfung laufen zu lassen und den Text auch sozusagen zwischen zu speichern für weitere Felder.
Bei der Ausführung erhalte ich die Fehlermeldung:
"Kompilierungsfehler in Microsoft VBScript, Line 25, Anweisungsende erwartet"
Das selbe Problem wird somit auch Line 27 und 29 betreffen.
Wie muss ich die Zeile enden lassen?
Oder wie muss die Klammer bestückt sein bei "excel.Cells(row,1,1)", damit er die Daten kopiert in die Zwischenablage.
Vielen Dank im Voraus für eure Hilfe! :-)
Mein Script sieht derzeit so aus: (wird aber noch deutlich erweitert, muss nur erstmal diese Basis-Funktion implementieren)
[PCOMM SCRIPT HEADER]
LANGUAGE=VBSCRIPT
DESCRIPTION=
[PCOMM SCRIPT SOURCE]
autECLSession.SetConnectionByName(ThisSessionName)
REM This line calls the macro subroutine
subSub1_
dim excel
dim row
dim inputfilename
dim objWorkbook
dim i, ka12
sub subSub1_()
inputfilename = "C:\Users\*********.xlsx"
Set excel = CreateObject("Excel.Application")
Set objWorkbook = excel.Workbooks.Open(inputFilename)
excel.visible = true
row = 1
for i = 1 to 2
dim spalte1a
spalte1a= autECLSession.autECLPS.GetText excel.Cells(row,1,1).Value
dim spalte1b
spalte1b= autECLSession.autECLPS.GetText excel.Cells(row,2,1).Value
dim spalte1c
spalte1c= autECLSession.autECLPS.GetText excel.Cells(row,3,1).Value
autECLSession.autECLPS.SendKeys ".ka10,"
autECLSession.autECLPS.SendKeys spalte1a
autECLSession.autECLPS.SendKeys " hip "
autECLSession.autECLPS.SendKeys spalte1a
autECLSession.autECLPS.SendKeys " hip "
autECLSession.autECLPS.SendKeys spalte1a
autECLSession.autECLPS.SendKeys " hurra "
if spalte1b = XY And spalte1c = VF then
autECLSession.autECLPS.SendKeys "38826"
end if
if spalte1b = XY And spalte1c = LD then
autECLSession.autECLPS.SendKeys "38825"
end if
if spalte1b = YX And spalte1c = VF then
autECLSession.autECLPS.SendKeys "38829"
end if
if spalte1b = YX And spalte1c = LD then
autECLSession.autECLPS.SendKeys "38828"
end if
row = row + 1
next
excel.Quit
Set excel = Nothing
end sub
Das erste Makro sah so aus und funktioniert auch wie oben beschrieben hinsichtlich des direkten Einfügens in PCOMM.
[PCOMM SCRIPT HEADER]
LANGUAGE=VBSCRIPT
DESCRIPTION=
[PCOMM SCRIPT SOURCE]
autECLSession.SetConnectionByName(ThisSessionName)
REM This line calls the macro subroutine
subSub1_
dim excel
dim row
dim inputfilename
dim objWorkbook
dim i, ka12
sub subSub1_()
inputfilename = "C:\Users\*********.xlsx"
Set excel = CreateObject("Excel.Application")
Set objWorkbook = excel.Workbooks.Open(inputFilename)
excel.visible = true
row = 1
for i = 1 to 2
autECLSession.autECLPS.SendKeys excel.Cells(row,1).Value
autECLSession.autECLPS.SendKeys excel.Cells(row,2).Value
autECLSession.autECLPS.SendKeys excel.Cells(row,3).Value
row = row + 1
next
excel.Quit
Set excel = Nothing
end sub