2016-04-28 15 views
0

VBAで文字列変数に値を宣言して割り当てました。VBAの文字列変数から改行を削除します

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 

誰もが解決策をアドバイスすることができ - :

変数を使用すると、これらを削除する方法を助言することができ、この変数は、次のコードを使用してXML文書からの値を割り当てられている、改行の数が含まれています?またはあなたがそれらのすべてが複数の置き換えを使用するためにテストすることができます -

おかげでニックは

+1

Replaceを使用して、この場合、他の文字列に何も置き換えないでください。 'str = Replace(str、vbLf、" ")' – newguy

+0

何を試しましたか?問題をよりよく理解するためのコードを表示してください。 –

+0

@MartinWickmanちょうど1週間前のあなたのコメントにちょうど答える、私はいくつかのコードを追加しました、あなたは助言することができます – nir020

答えて

2

まず、あなたはラインはあなたの変数があり破るかを決定する必要があります。幸いなことに、VBAは、あなたの生活が少し楽に改行のためのvbConstantsを持っている:私は代替としてスペースを使用しました

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

お知らせそうあなたがマージされる言葉で終わるだろう:

ラインでいくつかのテキスト
の例は、につながる長さゼロの文字列""で改行を置き換える

破る:

いくつかのテキストの

例を改行


で:ラインtextwithいくつかの

例が生成されますスペース" "に置き換え、一方、

を破りますちょうど楽しみのため別のこれを行う方法はとても似ている:

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

これは、1次元配列に文字列を分割する区切り文字として改行を使用して、その後、スペースを持つ配列の各要素を結合します。いいえいずれかの方法では、この場合は優先度が低くなります。