从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拆分为单维数组,然后使用空格连接数组的每个元素。 在这种情况下,两种方法都没有真正的优势。