Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

DataObject und Zwischenabalage

DataObject und Zwischenabalage
18.04.2009 19:19:53
MBorn
Hallo,
ich habe von Sepp Ehensberger gelernt, daß man zum Abfragen
der Windows Zwischenablage folgendes Script benutzen kann:

Sub TextFromClipboard()
'Benötigt den Verweis auf "Microsoft Forms 2.x Object Library" (unter Extras > Verweise)
Dim objCBData As DataObject
Dim lrow As Long
Set objCBData = New DataObject
objCBData.Clear
lrow = Range("B100000").End(xlUp).Row
On Error GoTo ErrNoText
objCBData.GetFromClipboard
Cells(lrow + 1, 2) = objCBData.GetText
ErrNoText:
If Err.Number  0 Then MsgBox "Kein Text in der Zwischenablage!"
Set objCBData = Nothing
End Sub


Was ich nun nicht schaffe, ist, dieses Skript so zu verändern, daß ein
Platzhalter, wie "-" in die Zelle eingetragen wird, wenn das Clipboard
leer ist.
Falls es nicht leer ist soll es nach dem Eintrag in Excel geleert werden.
Im Moment wird immer der Befehl selbst übertragen: Also, es steht in
der Excel Zelle: objCBData.Clear oder objCBData.GetFromClipboard.
Kann mir jemand unter die Arme greifen?
Gruß und Dank,
Born

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: DataObject und Zwischenabalage
18.04.2009 20:02:41
Armin
Hallo MBorn,
so:
....
Cells(lrow + 1, 2) = objCBData.GetText
ErrNoText:
If Err.Number 0 Then Cells(lrow + 1, 2) = "-"
Set objCBData = Nothing
End Sub
Gruß Armin
AW: Zwischenabalage leeren?
18.04.2009 22:34:57
MBorn
Hallo Armin,
das ist genau, was Sepp vorgeschlagen hat.
Problem: Wenn ich das Skript ein zweites Mal laufen lasse
(oder in einer Schleife) bleibt der Inhalt des Clipboards
erhalten.
Set objCBData = Nothing dient also nicht zum löschen
des Clipboards. Wie dann?
Gruß,
Born
AW: Zwischenabalage leeren?
18.04.2009 22:57:07
hary
Hallo MBorn
versuch mal

Application.CutCopyMode = False


damit muesste es geloescht sein
Gruss Hary

Anzeige
AW: Zwischenabalage leeren?
18.04.2009 23:15:51
MBorn
Hallo Hary,
leider nicht.
Beim Versuch, das Clipboard mit cutCopyFalse zu leeren wird beim
nächsten Durchgang:
"Application.CutCopyMode = False" anstatt "-" in die nächste zu
füllende Zelle eingetragen. Das alte Problem. Wie oben beschrieben.
Noch eine Idee, vielleicht?
Born
objCBData.SetText ""
19.04.2009 09:24:17
ransi
Hallo
Versuchs so:
objCBData.SetText ""
ransi
AW: objCBData immer Fehler 9
19.04.2009 13:36:24
MBorn
Hallo,
vielleicht kennt sich einer ja damit aus. Bei meinem Skript
bekomme ich die Fehlernummer 9, egal, ob das Clipboard
voll oder leer ist.

Sub TextFromClipboard2()
Dim objCBData As DataObject
Dim lrow As Long
On Error GoTo ErrNoText
Err.Number = 0
lrow = Range("A100000").End(xlUp).Row
Set objCBData = New DataObject
'objCBData.GetFromClipboard
'Cells(lrow + 1, 5) = objCBData.GetText
ErrNoText:
MsgBox Err.Number
If Err.Number  0 Then Cells(lrow + 1, 2) = "-"
Set objCBData = Nothing
End Sub


Das gibt immer die Fehlernummer 9 im ErrNoText. Deswegen
funktioniert Err.Number nicht. Kann mir jemand helfen?
Danke,
Born

Anzeige
AW: objCBData immer Fehler 9
22.04.2009 15:04:39
Heiner
Hi,
google mal nach der API EmptyClipboard, das ist komfortabler.
mfg Heiner
AW: Danke, Heiner
22.04.2009 15:44:28
MBorn
Mach ich...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige