SAP Jobsuche bei DV-Treff
CA_Mo
  • CA_Mo
  • SAP Forum - User Thema Starter
vor 14 Jahre

Hallo Community,

wie kann ich markierte Daten einer Abfrage (mittels vbs.Script) in die Zwischenablage verschieben?

Habe leider keinen entsprechenden Eintrag gefunden.

Hier mein bisheriger Code:

'###################################################
'Abruf Angelegte Qualitätsmeldungen des Vortags - TC "QM11"
'###################################################

session.findById("wnd[0]/tbar[0]/okcd").text = "/nqm11"
session.findById("wnd[0]").sendVKey 0

'Abfrage starten
session.findById("wnd[0]/tbar[1]/btn[8]").press

'Exportieren der Daten in Tabellenkalkulation
session.findById("wnd[0]/mbar/menu[0]/menu[3]/menu[2]").select
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").select
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").setFocus
session.findById("wnd[1]").sendVKey 0

'Export-Datei-Name
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "3_QM11 tägl. Abruf QM.XLS"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 26

'Export-Datei ersetzen
session.findById("wnd[1]/tbar[0]/btn[11]").press

session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").setCurrentCell -1,"QMNUM"
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectColumn "QMNUM"

<--- Hier müsste der befehl "in die Zwischenablage kopieren" hin...

 

Danke für eure Hilfe

Ca_Mo

Förderer

ScriptMan
vor 14 Jahre

Hallo CA_Mo,

anscheinend kann man diese Aufgabenstellung nur auf Umwegen lösen. Mein Vorschlag sieht wie folgt aus:

CLIP = ""

Anzahl = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").rowCount

For i = 0 to Anzahl - 1  
    QMNUM = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").getcellvalue (i, "QMNUM")
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").currentCellRow = i
    if i < Anzahl - 1 then QMNUM = QMNUM & chr(13) & chr(10)
    CLIP = CLIP & QMNUM
next

set objIE = CreateObject("InternetExplorer.Application")
objIE.visible = false
objIE.Navigate("about:blank")
objIE.document.parentwindow.clipboardData.SetData "text", CLIP
objIE.Quit

Man müsste den IE noch dazu bewegen, dass er nicht immer fragt, ob er den Zugriff auf die Zwischenablage zulassen soll. Dann könnte man damit auch leben.

Freundliche Grüße

ScriptMan

beatcode
vor 14 Jahre

hallo

ich lade texte mit folgendem codeschnippsel ins clipboard

 Dim WshShell,objArgs,Wert,cliptxt
Set WshShell = CreateObject("WScript.Shell")
Set objArgs = WScript.Arguments

cliptxt= "Text von Clipboard!"

call loadclipboard


Sub LoadClipboard

 '**** Text ins Clipboard laden ****
 WshShell.Run "mshta.exe vbscript:(document.parentwindow.clipboardData.SetData(""text"",""" _
 & cliptxt &"""))(Window.close)"
 
end sub

 

ScriptMan
vor 14 Jahre

Hallo Beat78,

ich habe es damit auch schon probiert. Mit einer einzelnen Zeile funktioniert es auch. Aber wenn man wie im obigen Beispiel mehrere Zeilen gleichzeitig in der Zwischenablage unterbringen will, klappt es mit den Zeilenumbrüchen nicht. Diese werden entweder entfernt oder falsch interpretiert.

Freundliche Grüße

ScriptMan