2014-10-29 20 views
6

Ich habe ein Makro, das alle Stile "Überschrift 1" in meinem Dokument findet und sie in einer ComboBox auf einem UserForm auflistet.Entfernen Sie Absatzmarke von Zeichenfolge

Mein Problem ist, dass die Suche Routine, die ich auch benutze ist die Auswahl der Absatzmarke () nach dem Text, den ich kopiert werden soll, und dass in der ComboBox angezeigt wird.

Wie kann ich dies aus der Zeichenfolge entfernen? Ich habe versucht, replace() useing, ersetzt vbCrLf, vbCr, vbLf, vbNewLine, ^p, v, Chr(244) und Asc(244) mit "", aber nichts hat succeeeded. Zum Beispiel -

sanitizedText = Replace(Selection.Text, "^v", "") 

Kann jemand bitte mit diesem Problem helfen? Vielen Dank.

Hier ist, wie meine Form aussieht -

enter image description here

+2

Wenn die Absatzmarke immer am Ende ist, können Sie vielleicht das letzte Zeichen mit myString = Left entfernen (myString, Len (myString) - 1) –

+0

versuchen Sie Chr (182). http://www.asci-i-code.com/ – Peekay

+0

@ MiguelFebres, Ihr Vorschlag hier macht den Trick. Fügen Sie es als Antwort hinzu und ich nehme es gerne an. –

Antwort

9

Sie ChrW$() für Unicode-Zeichen verwenden sollten:

sanitizedText = Replace(Selection.Text, ChrW$(244), "") 

Oder, wenn die Absatzmarke immer am Ende ist vielleicht können Sie einfach Entfernen Sie das letzte Zeichen mit

myString = Left(myString, Len(myString) - 1) 
+0

Danke für den Vorschlag, aber es funktioniert nicht. –

+0

Wie in den Fragekommentaren erwähnt, funktioniert der zweite Ihrer Vorschläge hier gut für mich. Danke für Ihre Hilfe. –

4

Ich habe sanitizedText = Replace(Selection.Text, Chr(13), "") erfolgreich verwendet; 13 ist der ASCII-Wert für 'Wagenrücklauf'.

0

Dieses winzige Skript ersetzt in einem Textstück, das im Dokument ausgewählt wurde (d. H. Mit dem Cursor markiert), Bindestriche, die am Anfang einer Zeile stehen. Es ersetzt sie durch einen improvisierten Aufzählungspunkt: (0)

Das Skript sucht nach Vorkommen von "Absatzmarke gefolgt von Bindestrich".

Ich hatte ein ähnliches Problem wie in der obigen Frage, da ich sicher war, Absatzmarken sollten "Chr (13) & Chr (10)" sein, was gleich "VbCrLF" ist, was gleich "Carriage Return, Line" ist Futter'. "Chr (13) & Chr (10)" war jedoch falsch. Der nackte Chr (13) hat den Job gemacht.

Sub MakeAppFormListPoints() 

'Replace list hyphens by (o) 

    Dim myRange As Range 
    Set myRange = Selection.Range 'What has been marked with the cursor 

     Debug.Print myRange ' Just for monitoring what it does 

    myRange = replace(myRange, Chr(13) & "-", Chr(13) & "(o)") 

     Debug.Print myRange ' Just for monitoring what it does 

End Sub 

(ich verwende diesen Text zur Einstellung in Word auf den irrsinnig eingeschränkten Zeichensatz des offiziellen Antragsformulars für das Programm Erasmus + Europäische Union geschrieben Aktivitäten des lebenslangen Lernen zu fördern. Nun, ich habe etwas gelernt.)