Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Teile der Zwischenablage auslesen

Forumthread: Teile der Zwischenablage auslesen

Teile der Zwischenablage auslesen
06.07.2005 10:51:54
Peter
Hallo zusammen,
ich habe eine Frage zum gezielten Auslesen der Zwischenablage.
Durch einen Aufruf über eine COM-Schnittstelle erhalte ich aus einer externen Anwendung ein Rudel Daten in der Zwischenablage.
Mich interesiert jedoch nur die zweite Zeile davon.
Habt Ihr eine Idee, wie ich genau diese zweite Zeile per VBA auslesen und eine Variable (String) speichern kann ?
Vielen Dank für Eure Hilfe und herzliche Grüße
Peter
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teile der Zwischenablage auslesen
06.07.2005 11:15:38
UweD
Hallo Peter
so könnte es gehen

Sub Text_raus()
' Unter Extras, Verweise muss dieser Verweis gesetzt werden
' "Microsoft Forms 2.0 Object Library"
Dim TakeData As DataObject, TT$, Pos1%, Pos2%
Set TakeData = New DataObject
TakeData.GetFromClipboard
TT = TakeData.GetText(1)
Pos1 = Application.Find(Chr(13), TT) + 1
TT = Mid(TT, Pos1)
Pos2 = Application.Find(Chr(13), TT) - 1
TT = Left(TT, Pos2)
MsgBox TT
' löschen der Zwischenablage
TakeData.SetText ""
TakeData.PutInClipboard
End Sub

Gruß UweD
(Rückmeldung wäre toll)
Anzeige
AW: Teile der Zwischenablage auslesen
06.07.2005 11:30:07
Peter
Hallo Uwe,
das Ziel ist sichtbar ... aber noch nicht erreicht ...
Das Makro rennt bei 'Pos1=...' und bei 'Pos2=..." in einen Fehler (1004:Anwendungs- oder objektorientierter Fehler).
Kann es sein, daß der Text der sich in der Zwischenablage befindet zu lang ist?
Der Text in der Zwischenablage ist (in diesem Beispiel) 1431796 Zeichen lang
Gruß
Peter
Anzeige
AW: Teile der Zwischenablage auslesen
06.07.2005 11:43:08
MichaV
Hallo
Versuch mal:

Private Sub ZweiteZeile()
Dim MyData As DataObject
Set MyData = New DataObject
MyData.GetFromClipboard
MsgBox Split(MyData.GetText, vbCrLf)(1)
End Sub

Der Verweis Unter Extras, Verweise zur Microsoft Forms 2.0 Object Library muss natürlich auch hier gesetzt sein.
Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Teile der Zwischenablage auslesen
06.07.2005 12:12:33
Peter
Hallo Uwe und Micha,
Dank Eurer Hilfe hab' ich es mir so zusammengebastelt wie ich es brauche.
Super und vielen vielen Dank
Viele Grüße
Peter
;
Anzeige
Anzeige

Infobox / Tutorial

Teile der Zwischenablage auslesen in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Zwischenablage in Excel VBA auszulesen, kannst du die DataObject-Klasse aus der "Microsoft Forms 2.0 Object Library" verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Verweis hinzufügen: Gehe zu Extras -> Verweise und setze einen Haken bei "Microsoft Forms 2.0 Object Library".

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul einfügen: Klicke auf Einfügen -> Modul, um ein neues Modul zu erstellen.

  4. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub Text_raus()
       Dim TakeData As DataObject
       Dim TT As String
       Dim Pos1 As Long, Pos2 As Long
    
       Set TakeData = New DataObject
       TakeData.GetFromClipboard
       TT = TakeData.GetText(1)
    
       Pos1 = Application.Find(Chr(13), TT) + 1
       TT = Mid(TT, Pos1)
       Pos2 = Application.Find(Chr(13), TT) - 1
       TT = Left(TT, Pos2)
    
       MsgBox TT
       ' Löschen der Zwischenablage
       TakeData.SetText ""
       TakeData.PutInClipboard
    End Sub
  5. Makro ausführen: Führe das Makro aus, um die zweite Zeile der Zwischenablage anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler 1004: Anwendungs- oder objektorientierter Fehler: Dieser Fehler kann auftreten, wenn der Text in der Zwischenablage zu lang ist. Überprüfe, ob die Länge des Textes die Grenzen des Excel-Zellinhalts übersteigt.

  • Zwischenablage nicht erreichbar: Stelle sicher, dass die Daten tatsächlich in der Zwischenablage vorhanden sind. Manchmal kann es hilfreich sein, die Anwendung, die die Daten kopiert, neu zu starten.


Alternative Methoden

Es gibt verschiedene Ansätze, um die Excel-Zwischenablage anzuzeigen oder auszulesen. Eine alternative Methode nutzt die Split-Funktion:

Private Sub ZweiteZeile()
    Dim MyData As DataObject
    Set MyData = New DataObject
    MyData.GetFromClipboard
    MsgBox Split(MyData.GetText, vbCrLf)(1) ' Zeigt die zweite Zeile an
End Sub

Diese Methode ist einfach und effektiv, wenn du nur die zweite Zeile benötigst.


Praktische Beispiele

  1. Einfaches Auslesen: Wenn du nur den gesamten Text aus der Zwischenablage benötigst:

    Sub AlleDatenAuslesen()
       Dim MyData As DataObject
       Set MyData = New DataObject
       MyData.GetFromClipboard
       MsgBox MyData.GetText
    End Sub
  2. Daten analysieren: Du kannst die Daten auch analysieren und in ein Array speichern, um sie weiterzuverarbeiten.


Tipps für Profis

  • Nutze die getfromclipboard-Methode effizient, indem du sicherstellst, dass die Zwischenablage nicht von anderen Anwendungen überschrieben wird.

  • Verwende Application.CutCopyMode = False, um die Zwischenablage nach der Verwendung zu leeren, falls dies erforderlich ist.

  • Teste deinen Code regelmäßig, um sicherzustellen, dass keine Fehler auftreten, besonders bei langen Texten in der Zwischenablage.


FAQ: Häufige Fragen

1. Wie kann ich die Excel-Zwischenablage anzeigen? Du kannst die Zwischenablage mit der GetText-Methode des DataObject-Objekts anzeigen.

2. Ist es möglich, die Zwischenablage in einer bestimmten Excel-Version auszulesen? Ja, die beschriebenen Methoden funktionieren in Excel-Versionen, die VBA unterstützen, einschließlich Excel 2010 und neuer.

3. Was mache ich, wenn meine Daten nicht korrekt aus der Zwischenablage gelesen werden? Überprüfe, ob die Daten in der Zwischenablage vorhanden sind und ob der Text nicht zu lang ist, was zu einem Fehler führen könnte.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige