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

Forumthread: Range in Zwischenablage kopieren und leere

Range in Zwischenablage kopieren und leere
23.01.2018 08:56:28
Chris
Hallo,
ich habe grad folgendes Problem.
Ich lasse einen Bereich mit Werten füllen, möchste diese dann in die Zwischenablage kopieren und anschließend wieder im Excelblatt leeren.
Allerdings ist dann auch die Zwischenablage leer...
Gibt es dafür eine Lösung, ich habe nichts brauchbares gefunden.
Hier zur Veranschlaulichung:
Sub ZA()
Dim i
For i = 1 To 10
Cells(i, 1).Value = i
Next
Range(Cells(1, 1), Cells(i - 1, 1)).Copy
Range(Cells(1, 1), Cells(i, 1)).ClearContents
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range in Zwischenablage kopieren und leere
23.01.2018 09:48:14
Daniel
Hi
es gibt zwei Zwischenablagen:
a) die Excelspezifische
b) die allgemeine Windowszwischenablage
die Excelspezifische Zwischenablage wird über das normale Copy befüllt.
mit ihr kannst du alle Excelspezifischen Daten übertragen, auch Formeln und Formate.
Allerdings wird die excelspezifische Zwischenablage, bei bestimmten Aktionen wieder gelöscht, so auch bei .ClearContents.
Wenn du die Excelspezifische Zwischenablage nutzen willst, müsstest du also das Einfügen vornehmen, bevor du das .ClearContents ausführst.
die andere Alternative ist, dass du die Daten in die allgemeine Windowszwischenablage übernimmst.
diese wird nicht so schnell wieder gelöscht, kann dafür aber nicht alle Excelspezifika übertragen, sondern vornehmlich nur Werte.
Um die Windowszwischenablage zu befüllen, brauchst du diesen Code:
Sub test()
Dim objClip As DataObject
Dim i As Long
Dim strTmp As String
Set objClip = New DataObject
For i = 1 To 10
Cells(i, 1).Value = i
Next
For i = 1 To 10
strTmp = strTmp & vbCrLf & Cells(i, 1).Value
Next
strTmp = Mid(strTmp, Len(vbCrLf) + 1)
objClip.SetText strTmp
objClip.PutInClipboard
End Sub

vorher musst du noch im VBA-Editor unter EXTRAS - VERWEISE das Häkchen bei "Microsoft Forms 2.0 Object Library" setzen, ansonsten gibt es kein "DataObject".
Das Häkchen wird automatisch gesetzt, wenn deine Datei eine Userform enthält.
Gruß Daniel
Anzeige
AW: Range in Zwischenablage kopieren und leere
23.01.2018 10:24:07
Chris
Ja, das klappt gut.
Das mit den zwei Zwischenablagen war mir nicht bewusst.
Danke!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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