2016-04-28 81 views
0

我已經爲VBA中的字符串變量聲明並賦值。刪除VBA中的字符串變量的換行符

變量包含大量換行符,你可以建議如何刪除這些,這個變量已被分配使用下面的代碼從XML文檔的值: -

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 

任何人都可以提出建議的解決方案?

感謝尼克

+1

使用替換替換任何其他字符串在這種情況下沒有什麼'str = Replace(str,vbLf,「」)' – newguy

+0

你試過了什麼?顯示一些代碼,以幫助我們更好地理解您的問題。 –

+0

@MartinWickman只是迴應你一週前的評論,我已經添加了一些代碼,你能建議嗎 – nir020

回答

2

首先,你需要確定哪些打破你的變量 - 或者你可以測試所有的人都使用多個內容替換。幸運的是,VBA有一個很容易就能爲換行符,使您的生活vbConstants:

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

通知我用一個空格作爲替代,否則你將結束的話被合併:

一些文本
帶線的例子打破

具有零長度的字符串""更換換行符將導致:

的一些textwith線

例如Break

而具有空間" "替換將產生:一些文本的

實施例帶有換行符


只是爲了好玩另一個這樣做的方法是,像這樣:

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

這將使用換行作爲分隔符來進行分割字符串成一維數組,然後加入與一個空間陣列的每個元素。沒有real這兩種方法的優點都只是在這種情況下偏好。