MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Word
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 13.06.2019, 07:25   #1
Oelle74
Neuer Benutzer
Neuer Benutzer
Standard VBA - Markierten Text inkl. Formatierung mit VBA kopieren

Hallo,
ich würde gerne mit einem VBA Makro den gesamtem markierten Text in einem Word-Dokument kopieren und in ein anderes Word-Dokument schreiben.
Dabei sollen sämtliche Formatierungen (fett, kursiv, Überschriften, Aufzählungen, etc.) erhalten bleiben. Auch sollen Tabellen, deren Text markiert ist, als Tabelle kopiert werden.
Hat jemand eine Idee?
Danke!

Ich habe folgenden Code, doch leider wird weder die Formatierung noch Tabellen mitkopiert:

Code:

Sub CopyHighlightedTextColor()
 
    Dim rng As Range
    Dim AText
    Dim NameA
    Dim NameB
 
    NameA = ActiveDocument.Name
    Documents.Add
    NameB = ActiveDocument.Name
    Documents(NameA).Activate
     
    ActiveDocument.Range(0, 0).Select
 
    Set rng = Selection.Range
 
    With rng.Find
 
        .ClearFormatting
        .Highlight = True
 
        While .Execute(Forward:=True, Format:=True)
            'Note: 'rng' is now the range containing the matched content
            AText = rng.Text '= "" 'rng.FormattedText.HighlightColorIndex
            Documents(NameB).Activate
            Selection.TypeText Text:=AText
            Documents(NameA).Activate
        Wend
 
    End With
 
End Sub
Eintrag auch in folgenden Foren:

https://www.office-fragen.de/index.p...c,65859.0.html

http://www.vba-forum.de/Forum/View.a..._Text_kopieren
Oelle74 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.06.2019, 12:09   #2
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Oelle,

Selection.TypeText überträgt, wie man schon am Begriff vermuten kann, nur Text.
Was normalerweise Formate mit überträgt, wäre einfaches Kopieren (fundbereich.Copy - zielbereich.Paste): Aber da hatte ich in einer Find-Schleife diverse Probleme. Z.B. wird jede Tabellenzelle mit Highlight einzeln gefunden, woraus natürlich keine Tabelle wird.

Da ich mich nun vergeblich bemüht habe, eine Lösung innerhalb einer Find-Schleife zu finden, bin ich auf den umgekehrten Weg verfallen:

Das ganze Quelldokument in ein anderes kopieren und dort alles rauslöschen, was nicht Highlight ist. Das geht mit folgendem Makro, was in das Quelldokument (also dasjenige Dokument, aus dem du rauskopieren willst) rein muss:
Code:

Sub AllesRausAusserHighlightedText()
    Dim ADoc As Document, BDoc As Document
    Dim suchbereich As Range
   
    Set ADoc = ThisDocument
    Set BDoc = Documents.Add
    Set suchbereich = ADoc.Range
     
    ADoc.Range.Copy
    BDoc.Range.Paste
    
    With BDoc.Range.Find
        .Highlight = False
        .Replacement.Text = ""
        .Execute Replace:=wdReplaceAll
    End With
End Sub
Ich bin gespannt, ob du in den anderen Foren noch andere Lösungsvorschläge bekommst.

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.06.2019, 13:04   #3
Oelle74
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Gerhard,

super, danke.

Das funktioniert sehr gut.
Oelle74 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.