从VBA中的stringvariables中删除换行符

我已经声明并为VBA中的stringvariables赋值。

该variables包含多个换行符,可以build议如何删除这些variables,该variables已使用以下代码从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 

任何人都可以提出解决scheme?

谢谢Nick

首先,你需要确定你的variables有哪些换行符,或者你可以使用多次replace来testing它们。 幸运的是,VBA具有vbConstants换行符,让您的生活变得更轻松:

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

注意我已经使用了一个空格作为replace,否则你最终将被合并的单词:

一些文字的例子
用换行符

用零长度string""replace换行符会导致:

一些textwith换行的例子

而用空格replace" "会产生:

一些带有换行符的文本示例


为了好玩,另一种做法是这样的:

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

这将使用换行符作为分隔符将string拆分为单维数组,然后使用空格连接数组的每个元素。 在这种情况下,两种方法都没有真正的优势。