VBA: Zwischenablage
13.09.2021 17:34:14
Felo
Vielleicht hat jemand eine Idee bei meinem folgenden Problem und kann mir netterweise helfen:
Ich kopiere mit einem CommandButton den Inhalt verschiedener Zellen in die Zwischenablage ( Range("wx:yz").Copy ) und füge den Inhalt der Zwischenablage dann in die Benutzeroberfläche eines externen/anderen Programms ein. Das Problem ist, dass hierbei anscheinend regelhaft Anführungszeichen beim Einfügen in externe Programme gesetzt werden, wenn der aus Excel kopierte Inhalt Zeilenumbrüche, Tab-Sprünge u.a. "Spezial-Features" enthält.
Kann man Excel das "austreiben", indem man den Zelleninhalt zB als plain Text kopieren lässt?
Mein Code:
Private Sub CommandButton4_Click()
ActiveSheet.Unprotect
Sheets("Copy").Range("E10:E11").Value = Sheets("Calculator").Range("G48:G49").Value
If WorksheetFunction.CountBlank(Sheets("Copy").Range("E10:E11")) > 0 Then
Sheets("Copy").Range("E10:E11").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End If
ActiveSheet.Protect
If WorksheetFunction.CountBlank(Sheets("Copy").Range("E10")) = 0 And WorksheetFunction.CountBlank(Sheets("Copy").Range("E11")) > 0 Then
Sheets("Copy").Range("E10").Copy
End If
If WorksheetFunction.CountBlank(Sheets("Copy").Range("E10")) = 0 And WorksheetFunction.CountBlank(Sheets("Copy").Range("E11")) = 0 Then
Sheets("Copy").Range("E10:E11").Copy
End If
End Sub
Ich habe im Internet u.g. Code gefunden, der vielleicht helfen könnte, ich weiss aber nicht, wie ich meinen o.g. Code damit verbessern bzw. kombinieren könnte..
Public Sub Zwischenablage()
Dim oData As New DataObject
Dim sText As String
sText = "XYZ"
With oData
.SetText sText
.PutInClipboard
End With
End Sub
Vielen Dank im Vorraus für alle hilfreichen Ansätze!! :-)