VBA-Kopie in die Zwischenablage

In diesem Artikel wird gezeigt, wie Sie mit VBA Elemente in die Zwischenablage kopieren.

Es kann vorkommen, dass wir Informationen in Excel VBA kopieren und speichern möchten, um sie in einer anderen Anwendung zu verwenden, oder zu einem anderen Zeitpunkt, wenn das Excel-Makro nicht mehr ausgeführt wird. Sobald ein Makro nicht mehr ausgeführt wird, sind die in einer oder mehreren Variablen gespeicherten Informationen nicht mehr vorhanden und können nicht mehr abgerufen werden. Eine Möglichkeit, dieses Problem zu lösen, besteht darin, diese Informationen in die Zwischenablage zu kopieren.

Kopieren in die Zwischenablage mit der HTML-Objektbibliothek

Die einfachste Möglichkeit, die Zwischenablage in Excel VBA zu verwenden, besteht darin, die HTML-Objektbibliothek aufzurufen.

1234567 Unter StoreData()Dim varText als VarianteDim objCP als ObjektvarText = "Irgendein kopierter Text"Set objCP = CreateObject("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextEnd Sub

Da wir die späte Bindung verwenden, indem wir die Variable objCP als Objekt deklarieren, müssen wir keinen Verweis auf Excel hinzufügen, damit dieses Verfahren funktioniert.

Wenn wir nun zu unserem Excel-Arbeitsblatt wechseln und auf Einfügen klicken, wird der Text „Einige kopierte Daten“ in die ausgewählte Zelle eingefügt.

Würden wir diese obige Prozedur in eine Funktion umwandeln, könnten wir den zu kopierenden Text als Variable übergeben.

12345 Funktion StoreData(varText As Variant) als StringDim objCP als ObjektSet objCP = CreateObject("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextEndfunktion

Wir könnten diese Funktion dann mehrmals in unserem VBA-Code aufrufen, wenn wir Text in die Zwischenablage kopieren müssen. Der Text wäre daher nicht in den VBA-Code hartcodiert.

123 Unter CopyData()StoreData "Einige kopierter Text"End Sub

Wir können das HTML-Objekt auch verwenden, um den Text aus der Zwischenablage zurückzugeben - dh Einfügen. Dazu verwenden wir die GetData- statt der SetData-Methode.

12345 Funktion ReturnData()Dim objCP als ObjektSet objCP = CreateObject("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData("text")Endfunktion

Wir können diese Funktion dann aufrufen, um die in der Zwischenablage gespeicherten Daten zurückzugeben.

123 Unter PasteData()MsgBox ReturnDataEnd Sub

Ein netter Trick wäre, die beiden Funktionen miteinander zu kombinieren, sodass wir dieselbe Funktion zum Kopieren und Einfügen von Daten verwenden könnten, je nachdem, ob wir Daten in die Zwischenablage senden oder nicht, oder ob wir Daten aus der Zwischenablage abrufen möchten.

1234567891011 Funktion StoreOrReturnData(Optional strText As String) As StringDim varText als VarianteDim objCP als ObjektSet objCP = CreateObject("HtmlFile")varText = strTextWenn strText "" ThenobjCP.ParentWindow.ClipboardData.SetData "text", varTextAndersStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData("text")Ende WennEndfunktion

Im obigen Code können wir die Variable strText optional machen - das heißt, wenn wir Daten kopieren möchten, werden wir den zu kopierenden Text einschließen, aber wenn wir Daten einfügen möchten, werden wir ihn ausschließen.

Wir weisen dann die String-Variable (strText) einer Variant-Variablen zu, damit sie in der SetData-Methode des HTML-Dateiobjekts gespeichert wird.

Um die Daten zu kopieren, können wir dieses Verfahren verwenden, beachten Sie, dass wir den zu kopierenden Text einfügen.

123 Unter CopyData()StoreOrReturnData "SomeCopiedText"End Sub

Um die Daten einzufügen, können wir dieses Verfahren verwenden. Das Meldungsfeld zeigt den in der Zwischenablage gespeicherten Wert an.

123 Unter PasteData()MsgBox StoreOrReturnDataEnd Sub

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave