Wow, ich wollte diese Frage selbst stellen, aber sie wurde bereits gestellt. Alle Excel-Zwischenablage-Ausgaben sind standardmäßig tabulatorgetrennt. Das ist irgendwie ärgerlich für “echte” Klartextausgaben, wenn man eine Schrift mit fester Breite hat, aber nicht unbedingt Tabulatorbegrenzer unterstützt.
Wie auch immer, ich habe ein kleines Excel-Makro gefunden und modifiziert, das den aktuell ausgewählten Bereich als einfache ASCII-Tabelle mit fester Spaltenbreite kopiert - etwa so:
187712 201 37 0.18 2525 580 149 0.25 136829 137 43 0.31
Hier ist der Makro-Code. Um ihn zu verwenden, stellen Sie sicher, dass Sie die Registerkarte Entwickler in den Excel-Optionen aktivieren, wenn Sie Excel 2007 oder später verwenden.
Sub CopySelectionToClipboardAsText()
' requires a reference to "Windows Forms 2.0 Object Library"
' add it via Tools / References; if it does not appear in the list
' manually add it as the path C:\Windows\System32\FM20.dll
Dim r As Long, c As Long
Dim selectedrows As Integer, selectedcols As Integer
Dim arr
arr = ActiveSheet.UsedRange
selectedrows = UBound(arr, 1)
selectedcols = UBound(arr, 2)
Dim temp As Integer
Dim cellsize As Integer
cellsize = 0
For c = 1 To selectedcols
temp = Len(CStr(Cells(1, c)))
If temp > cellsize Then
cellsize = temp
End If
Next c
cellsize = cellsize + 1
Dim line As String
Dim output As String
For r = 1 To selectedrows
line = Space(selectedcols * cellsize)
For c = 1 To selectedcols
Mid(line, c * cellsize - cellsize + 1, cellsize) = Cells(r, c)
Next c
output = output + line + Chr(13) + Chr(10)
Next r
Dim MyData As MSForms.DataObject
Set MyData = New DataObject
MyData.SetText output
MyData.PutInClipboard
MsgBox "The current selection was formatted and copied to the clipboard"
End Sub