ich suche eine VBA Lösung, um die Zwischenablage komplett zu löschen.
Im Netz gefundene Lösungen haben nicht funktioniert, z.B. clipboard.clear etc.
Mit der Bitte um Hilfe, grüßt
Dieter(Drummer)
Application.CutCopyMode = False
?Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As _
String, ByVal lpWindowName As String) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Public Sub Zwischenablage_loeschen()
OpenClipboard FindWindow("xlMain", vbNullString)
EmptyClipboard
CloseClipboard
End Sub
Sub a()
With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText ""
.PutInClipboard
End With
End Sub
Und schon ist das Windows Clipboard leer...Sub ZwLeeren()
ActiveSheet.Range("ZZ1").Copy Range("ZZ1")
Application.CutCopyMode = False
End Sub
Oder soll die Lösung auch ausserhalb von Excel funktionieren?Um die Zwischenablage in Excel via VBA zu leeren, kannst Du den folgenden Code verwenden. Dieser funktioniert sowohl in 32-Bit- als auch in 64-Bit-Versionen von Excel:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Public Sub Zwischenablage_loeschen()
OpenClipboard FindWindow("xlMain", vbNullString)
EmptyClipboard
CloseClipboard
End Sub
Führe diesen Code in einem VBA-Modul aus, um die Excel-Zwischenablage zu leeren.
Fehler: "Element wurde nicht der Sammlung hinzugefügt"
Fehler: Die Zwischenablage wird nicht geleert
Code funktioniert nicht in einer bestimmten Mappe
Falls die VBA-Methode nicht funktioniert, kannst Du auch die integrierte Funktion von Excel verwenden:
Manuelles Löschen der Zwischenablage
VBA-Workaround mit einer leeren Zelle
Sub ZwLeeren()
ActiveSheet.Range("ZZ1").Copy Range("ZZ1")
Application.CutCopyMode = False
End Sub
Sub LeereZwischenablage()
With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText ""
.PutInClipboard
End With
End Sub
Application.CutCopyMode = False nach dem Kopieren von Daten, um die Zwischenablage zu leeren, bevor Du weitere Daten bearbeitest.1. Warum funktioniert mein VBA-Code zur Zwischenablade-Löschung nicht?
Es könnte sein, dass Du versuchst, die Office-Zwischenablage zu leeren, was nicht immer möglich ist. Verwende die Windows API, um sicherzustellen, dass Du die richtige Zwischenablage bearbeitest.
2. Gibt es eine Möglichkeit, die Zwischenablage in Excel 64-Bit zu leeren?
Ja, der oben bereitgestellte Code funktioniert in Excel 64-Bit. Achte darauf, die richtigen Deklarationen zu verwenden.
3. Wie kann ich die Zwischenablage automatisch leeren?
Du kannst einen Timer oder eine Schleife einfügen, um die Zwischenablage in festgelegten Intervallen zu leeren. Achte darauf, dass dies nicht zu unerwünschtem Verhalten führt.
4. Gibt es Unterschiede zwischen der Windows- und der Office-Zwischenablage?
Ja, die Windows-Zwischenablage ist unabhängig von der Office-Zwischenablage. Manche VBA-Methoden können nur auf die Windows-Zwischenablage zugreifen.