Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen ob Zwischenablage leer ist

Forumthread: Prüfen ob Zwischenablage leer ist

Prüfen ob Zwischenablage leer ist
21.08.2002 11:23:40
Ralph P.
Hallo.

Wie kann ich prüfen, ob die Zwischenablage leer ist oder nicht?

Danke Ralph

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Prüfen ob Zwischenablage leer ist
21.08.2002 11:52:21
L.Vira
Interessant, kannst du verraten, welchem Zweck das dient?
Re: Prüfen ob Zwischenablage leer ist
21.08.2002 11:57:14
Ralph P.
Weil ich vor dem Einfügen prüfen will, ob was in der Zwischenablage ist?
Re: Prüfen ob Zwischenablage leer ist
21.08.2002 12:17:31
Kl@us-M.
Hallo Ralph,
mit
Application.CommandBars("Clipboard").Visible = True
Gruss aus dem Hunsrück
Klaus-Martin
Anzeige
Re: Prüfen ob Zwischenablage leer ist
21.08.2002 12:25:16
Ralph P.
Ich möchte nicht visuel die Zwischenablage sehen.
VBA soll prüfen, ob etwas in der zwischenablage ist.

Trotzdem Danke

Re: Prüfen ob Zwischenablage leer ist
21.08.2002 13:23:25
Anugyan
Hi Ralph,
glaube mich zu erinnern, hier im Forum schon mal gelesen zu haben, dass die Zwischenablage in VBA nicht direkt gelesen und beschrieben werden kann; so versuch doch mal sinngemäß folgendes:

Range("A1").Value=""
Range("A1").Paste
If Range("A1").Value<>"" Then
MsgBox "Zwischenablage NICHT leer"
Else MsgBox "Zwischenablage leer"
End IF

Ich kann den code im Moment leider selbst nicht überprüfen, da sich meim Excel nicht starten läßt. Wiedermal, wie schon oft beim Besuch des Forums,
"EXCEL verursachte einen Fehler durch eine ungültige Seite in Modul VBE6.DLL bei 0167:6512cb19."
nach Start von Excel und es hilft nur ein W98-Neustart.
Gruss Anugyan

Anzeige
Re: Prüfen ob Zwischenablage leer ist
21.08.2002 14:41:28
L.Vira
Option Explicit
Sub Clipboard()
Dim TestDaten As DataObject
On Error Resume Next
TestDaten.GetFromClipboard
If Err Then
MsgBox "Clipboard enthält keine Daten!"
End If
End Sub

Funktioniert fast
22.08.2002 09:11:52
Ralph P.
Danke Anugyan.

Man muß nur vor dem "Paste" ein "On Error Resume Next" setzen, damit das Skript nicht abbricht, wenn die Zwischenablage leer ist.

Anzeige
;
Anzeige

Infobox / Tutorial

Prüfen ob die Zwischenablage leer ist in Excel VBA


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob die Zwischenablage in Excel VBA leer ist, kannst Du den folgenden VBA-Code verwenden. Dieser Code nutzt die DataObject-Klasse, um die Inhalte der Zwischenablage auszulesen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu, indem Du im Menü "Einfügen" auf "Modul" klickst.
  3. Kopiere den folgenden Code und füge ihn in das Modul ein:
Option Explicit

Sub ClipboardCheck()
    Dim TestDaten As MSForms.DataObject
    Set TestDaten = New MSForms.DataObject
    On Error Resume Next
    TestDaten.GetFromClipboard

    If Err.Number <> 0 Then
        MsgBox "Die Zwischenablage enthält keine Daten!"
    Else
        MsgBox "Die Zwischenablage ist nicht leer."
    End If
End Sub
  1. Schließe den VBA-Editor und führe das Makro ClipboardCheck aus, um die Prüfung durchzuführen.

Häufige Fehler und Lösungen

  • Fehler: "Das Objekt unterstützt diese Methode nicht."

    • Stelle sicher, dass Du die Microsoft Forms 2.0-Bibliothek aktiviert hast. Gehe dazu im VBA-Editor auf "Extras" > "Verweise" und aktiviere "Microsoft Forms 2.0 Object Library".
  • Fehler: "Die Zwischenablage ist leer!"

    • Dies passiert, wenn Du die Zwischenablage nicht mit Inhalten gefüllt hast. Stelle sicher, dass Du vor dem Ausführen des Codes etwas in die Zwischenablage kopiert hast.

Alternative Methoden

Wenn Du die Zwischenablage in Excel VBA auslesen möchtest, kannst Du auch eine andere Methode verwenden, die auf dem Range-Objekt basiert:

Sub AlternateClipboardCheck()
    Range("A1").Value = ""
    On Error Resume Next
    Range("A1").Paste
    If Range("A1").Value <> "" Then
        MsgBox "Die Zwischenablage ist nicht leer."
    Else
        MsgBox "Die Zwischenablage ist leer."
    End If
End Sub

Diese Methode überprüft, ob nach dem Einfügen von Inhalten in die Zelle A1 etwas vorhanden ist.


Praktische Beispiele

Hier sind zwei Beispiele, wie Du die Zwischenablage in VBA nutzen kannst:

  1. Inhalte der Zwischenablage in eine Zelle einfügen:
Sub PasteClipboardToCell()
    Dim TestDaten As MSForms.DataObject
    Set TestDaten = New MSForms.DataObject
    On Error Resume Next
    TestDaten.GetFromClipboard
    If Err.Number = 0 Then
        Range("A1").Value = TestDaten.GetText
    End If
End Sub
  1. Zwischenablage leeren:
Sub ClearClipboard()
    Dim TestDaten As MSForms.DataObject
    Set TestDaten = New MSForms.DataObject
    TestDaten.SetText ""
    TestDaten.PutInClipboard
    MsgBox "Die Zwischenablage wurde geleert."
End Sub

Tipps für Profis

  • Verwende On Error Resume Next, um sicherzustellen, dass Dein Code nicht abbricht, wenn die Zwischenablage leer ist.
  • Denke daran, die DataObject-Klasse zu verwenden, um auf die Excel VBA Zwischenablage zuzugreifen, da der direkte Zugriff auf die Zwischenablage in VBA nicht möglich ist.
  • Teste Deine Makros in einer sicheren Umgebung, um ungewollte Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den Inhalt der Zwischenablage in eine Excel-Zelle einfügen? Du kannst den Inhalt der Zwischenablage mit dem Paste-Befehl in eine Zelle einfügen, wie im Beispiel oben gezeigt.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code sollte in allen gängigen Excel-Versionen, die VBA unterstützen, funktionieren. Achte jedoch darauf, dass die Microsoft Forms 2.0-Bibliothek aktiviert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige