Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
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
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

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!

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige