2016-04-28 7 views
0

Ich habe eine Zeichenfolge Variable in VBA deklariert und zugewiesen.entfernen Sie den Zeilenumbruch von String-Variable in VBA

Die Variable eine Reihe von Zeilenumbrüche enthält, können Sie beraten, wie diese zu entfernen, diese Variable einen Wert aus einem XML-Dokument mit dem folgenden Code zugewiesen wurde: -

s = Application.GetOpenFilename() 

myFolder = ActiveWorkbook.Path 
s = Dir(myFolder & "\*.xml") 

Do While s <> "" 

If s <> "False" Then 

    Set FSO = CreateObject("Scripting.FileSystemObject") 
     If FSO.FileExists(s) Then 

     t = myFolder & "\" & Replace(FSO.GetTempName(), ".tmp", ".xml") 

     Name s As t 
     Set ts(0) = FSO.OpenTextFile(t, 1, False, -2) 

     FileContents = ts(0).READALL     

    ts(0).Close 
     Set ts(0) = Nothing 

    End If 
End If 

    s = Dir$ 

loop 

Kann mir jemand eine Lösung beraten ?

Dank Nick

+1

Verwenden Sie ersetzen, um beliebige Zeichenfolge durch andere in diesem Fall mit nichts zu ersetzen 'str = Ersetzen (str, vblf," ")' – newguy

+0

Was haben Sie versucht? Zeigen Sie Code, damit wir Ihr Problem besser verstehen können. –

+0

@MartinWickman nur auf Ihren Kommentar von etwa einer Woche, habe ich etwas Code hinzugefügt, können Sie beraten – nir020

Antwort

2

Zuerst müssen Sie die Linie brechen Ihre Variable bestimmen hat - oder Sie können für alle von ihnen mit mehreren ersetzt testen. Zum Glück hat VBA die vbConstants für Zeilenumbrüche, die Ihr Leben ein wenig leichter machen:

myStr = Replace(myStr, vbCr, " ") 
myStr = Replace(myStr, vbLf, " ") 
myStr = Replace(myStr, vbCrLf, " ") '// or vbNewLine 

bemerke ich einen Raum als Ersatz verwendet haben, sonst werden Sie sich mit Worten am Ende zusammengeführt werden:

Beispiel für einen Text
mit einem Zeilenumbruch

ersetzen des Zeilenumbruchs mit einer Null-Zeichenfolge "" würde in Folge:

Beispiel einiger Text von einem Zeilenumbruch

während " " produzieren mit einem Zwischenraum zu ersetzen:

Beispiel einiger Text mit einem Zeilenumbruch


Nur zum Spaß ein anderer Weg, dies zu tun, ist in etwa so:

myStr = Join$(Split(myStr, vbCrLf), " ") 

Dies verwendet den Zeilenumbruch als Trennzeichen die Zeichenfolge aus in ein eindimensionales Feld aufteilen, schließt sie dann jedes Element des Arrays mit einem Raum. Nein real Vorteil in beiden Verfahren nur in diesem Fall zu bevorzugen.

Verwandte Themen