Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
22.10.2020 16:16:58 |
Ole |
|
|
String in Zwischenablage kopieren |
22.10.2020 16:37:00 |
volti |
|
|
|
22.10.2020 17:23:06 |
Ole |
|
|
|
22.10.2020 17:36:24 |
volti |
|
|
|
22.10.2020 17:58:48 |
Ole |
|
|
Von:
volti |
Datum:
22.10.2020 16:37:00 |
Views:
1328 |
Rating:
|
Antwort:
|
Thema:
String in Zwischenablage kopieren |
Hallo Ole,
das Problem mit den zwei Zeichen ?? ist bekannt und kommt temporär vor, wenn man mit dem DataObject arbeitet.
Dazu gab es mal bei Mr. Excel im Forum folgenden Hinweis:
Alle Explorerfenster schließen - also diese "gelben Ordnersymbole in der Statusleiste".
Falls das nichts bringt und Du den Aufwand nicht scheust, kopiere über die API. Hier die zwei Varianten API/DataObject ohne Verweiß als Muster:
Option Explicit
Private Declare PtrSafe Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
ByVal dwBytes As LongPtr) As LongPtr
Private Declare PtrSafe Function GlobalLock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr
Private Declare PtrSafe Function GlobalUnlock Lib "kernel32" (ByVal hMem As LongPtr) As Long
Private Declare PtrSafe Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, _
ByVal lpString2 As Any) As LongPtr
Private Declare PtrSafe Function SetClipboardData Lib "user32" (ByVal wFormat As Long, _
ByVal hMem As LongPtr) As LongPtr
Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hWnd As LongPtr) As Long
Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long
Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long
Dim hMem As LongPtr, lpGMem As LongPtr
Function KopiereinClpbrd(Optional ClpTxt As String) As String
'Kopieren über die API (alternativ)
hMem = GlobalAlloc(&H42, Len(ClpTxt) + 1)
lpGMem = GlobalLock(hMem)
lpGMem = lstrcpy(lpGMem, ClpTxt)
If GlobalUnlock(hMem) = 0 Then
If OpenClipboard(0&) <> 0 Then
EmptyClipboard
SetClipboardData 1, hMem '1=CF_TEXT
CloseClipboard
End If
End If
End Function
Function KopiereinClpbrd2(Optional ClpTxt As String) As String
'Funktion kopiert Text in die Zwischenablage
On Error Resume Next
With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText (ClpTxt)
.PutInClipboard 'Text in die Zwischenablage
End With
End Function
Sub Copytest()
KopiereinClpbrd "Teste mich"
End Sub
viele Grüße
Karl-Heinz
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
22.10.2020 16:16:58 |
Ole |
|
|
String in Zwischenablage kopieren |
22.10.2020 16:37:00 |
volti |
|
|
|
22.10.2020 17:23:06 |
Ole |
|
|
|
22.10.2020 17:36:24 |
volti |
|
|
|
22.10.2020 17:58:48 |
Ole |
|
|