[gelöst]Textfeldinhalt in Zwischenablage kopieren

  • Excel

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von roddy.

    [gelöst]Textfeldinhalt in Zwischenablage kopieren

    Hallo,

    wie kann ich den Text aus einem Textfeld in die Zwischenablage kopieren?

    Mit

    Visual Basic-Quellcode

    1. Textfeld1.Text.Copy

    funktionierts leider nicht.

    Wenn ich den Inhalt des Feldes als Variable speicher und ihn dann kopiere funktionierts leider auch nicht.

    Kann mir jemand helfen?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ovakek“ ()

    Das ist zwar nicht gerade eine optimale Lösung, aber mir ist nichts besseres eingefallen:
    Den Inhalt des Textfeldes in eine nicht benutzte Tabellenzelle schreiben und dann den Zellinhalt kopieren:

    Visual Basic-Quellcode

    1. Range("A1") = Textfeld1.Text
    2. Range("A1").Copy
    Schon mal danke für die Antwort ;)

    So funktionierts natürlich.
    Den Text aus dieser Zelle würde ich dann aber gerne wieder aus der Tabelle entfernen.

    Ich habs mit

    Visual Basic-Quellcode

    1. Range("A410") = CfgBox2.Text
    2. Range("A410").Copy
    3. Range("A410").Clear


    probiert, aber da wird anscheinend der Inhalt der Zwischenablage gelöscht.

    Ohne die letzte Zeile bleibts in der Zwischenablage aber wird nicht aus der Zelle gelöscht.

    Wie kann ich das realisieren?

    //EDIT:

    Ich stellte eben fest, dass wenn ich den Textfeldinhalt in eine Zelle kopiere und im Notepod o.ä. einfüge, der kopierte Text mit einem Anführungszeichen beginnt und endet. 8|

    Weiß jemand warum das so ist? Im Textfeldinhalt ist keins ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ovakek“ ()

    Microsoft Forms 2.0 Objektlibrary

    Du musst einen Verweis auf "Microsoft Forms 2.0 Objektlibrary" setzen und kannst dann so auf die Zwischenablage zugreifen:

    Visual Basic-Quellcode

    1. Public Sub SchreibeTextInDieZwischenablage()
    2. Dim oData As New DataObject
    3. Dim sText As String
    4. sText = "Hallo Leute" & vbCrLf & "Neues von Online Excel"
    5. With oData
    6. .SetText sText
    7. .PutInClipboard
    8. End With
    9. End Sub
    10. Public Function HoleTextVonZwischenablage() As String
    11. Dim oData As New DataObject
    12. On Error Resume Next ' Brutal um falsche Formate abzuwürgen, gibt dann einen Leerstring
    13. oData.GetFromClipboard
    14. HoleTextVonZwischenablage = oData.GetText
    15. End Function
    16. Public Sub RausMitZwischenAblage()
    17. Dim oData As New DataObject
    18. oData.SetText ""
    19. oData.PutInClipboard
    20. End Sub
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Besten Dank, schreiben funktioniert prima.
    Wenn ich die Zwischenablage löschen möchte zeigt er mir einen Syntaxfehler in der Funktion:

    Visual Basic-Quellcode

    1. Public Sub RausMitZwischenAblage()
    2. Dim oData As New DataObject
    3. oData.SetText ""
    4. oData.PutInClipboard
    5. End Sub


    Mein Click Event sieht so aus:

    Visual Basic-Quellcode

    1. Private Sub CopyButton2_Click()
    2. RausMitZwischenAblage()
    3. SchreibeZwischenablage (CfgBox2.Text)
    4. End Sub


    Wo ist der Fehler? ?(
    Unter VB6 geht das glaubsch mit Clipboard.Clear, kA wies mit VBA aussieht. @ tobikubi: Strings mit Länge 0 waren früher nicht Nothing - ich bin mir nichtmal sicher, dass das jetzt (.net) immer so ist. Der Grund ist, dass das Clipboard einfach keine leeren Strings mag.
    Hi,

    danke für die schnellen Antworten :!:

    Der Fehler lag wohl doch bei meinem Click Event. Ich habe einfach die Klammern hinter der Funktion weggelassen:

    Vorher:

    Visual Basic-Quellcode

    1. Private Sub CopyButton2_Click()
    2. RausMitZwischenAblage ()
    3. SchreibeZwischenablage (CfgBox2.Text)
    4. End Sub


    Nachher:

    Visual Basic-Quellcode

    1. Private Sub CopyButton2_Click()
    2. RausMitZwischenAblage
    3. SchreibeZwischenablage (CfgBox2.Text)
    4. End Sub


    Jetzt gehts.

    Noch eine kurze Frage hinterher. Wie kann ich eine Range in die Zwischenablage kopieren?
    Am besten nur den Text ohne die Zellrahmen.

    Mad Andy schrieb:

    Dann mag die Zwischenablage doch leere Strings :D

    Range("...").Copy sollt klappen.
    Jop das funktionierte auch. Hatte die kopierten Zellen zum Test in Word eingefügt und da wurden die Zellrahmen mit übernommen.
    Da die Zellen aber lediglich in den Editor kommen der eh keine Zellrahmen kennt ist das egal ;)
    Du kannst ja den Code von Agent auf Range("...") anwenden, dann kommen auch in Word keine Zellrahmen.

    Vielen Dank an Agent auch von mir :thumbsup: . Dein Code hilft mir bei bestimmten Projekten auch.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „roddy“ ()