Thema Datum  Von Nutzer Rating
Antwort
12.05.2017 09:04:35 Hans
NotSolved
Blau Inhaltsverzeichnis
13.05.2017 17:39:38 BigBen
Solved
19.05.2017 09:57:15 Hans
Solved

Ansicht des Beitrags:
Von:
BigBen
Datum:
13.05.2017 17:39:38
Views:
553
Rating: Antwort:
 Nein
Thema:
Inhaltsverzeichnis

Hallo,

vielleicht hilft dieser Code weiter:

Sub RemoveDoubleLinesInParagraph()
    Dim rngPar As Range
    Dim strText As String
    Dim strWord As String
    Dim myWords As New Collection
    Dim iPos As Integer, iNew As Integer
    'Dim mc As VBScript_RegExp_55.MatchCollection
    Dim mc As Object
    Dim arLines() As String, arOut() As String, iLine As Integer
    Set rngPar = Selection.Paragraphs(1).Range
    strText = rngPar.Text
    arLines = Split(rngPar.Text, Chr(11))
    For iLine = 0 To UBound(arLines)
        Set mc = searchRegEx(arLines(iLine), "([a-z|A-Z| |0-9]+)(\.+)(\w+)")
        If Not mc Is Nothing Then
            strWord = mc.Item(0).SubMatches.Item(0)
            If ExistsItem(myWords, strWord) Then
                arLines(iLine) = ""
            Else
                myWords.Add strWord
            End If
        End If
    Next
    ' Leere Einträge aus Array läschen
    iNew = -1
    For iPos = 0 To UBound(arLines)
        If Not arLines(iPos) = "" Then
            iNew = iNew + 1
            ReDim Preserve arOut(iNew)
            arOut(iNew) = arLines(iPos)
        End If
    Next
    strText = Join(arOut, Chr(11))
    Selection.Paragraphs(1).Range.Text = strText
End Sub

Function ExistsItem(colItems As Collection, strSearch As String) As Boolean
    Dim iPos As Integer
    For iPos = 1 To colItems.Count
        If colItems.Item(iPos) = strSearch Then
            ExistsItem = True
            Exit For
        End If
    Next
End Function

Function searchRegEx(sourceString As String, pattern As String) As Object 'VBScript_RegExp_55.MatchCollection
    'Dim RegEx As New VBScript_RegExp_55.RegExp
    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")
    With RegEx
        .MultiLine = True
        .pattern = pattern
        If .TEST(sourceString) Then
            Set searchRegEx = .Execute(sourceString)
        End If
    End With
End Function

Vor Ausführung des Befehls RemoveDoubleLinesInParagraph muss die Markierung sich in der Liste befinden, die korrigiert werden soll.

LG, BigBen


Ihre Antwort
  • 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: Name: Email:



  • 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
12.05.2017 09:04:35 Hans
NotSolved
Blau Inhaltsverzeichnis
13.05.2017 17:39:38 BigBen
Solved
19.05.2017 09:57:15 Hans
Solved