我已声明并为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
有人可以建议解决方案吗?
谢谢尼克
答案 0 :(得分:4)
首先,您需要确定您的变量有哪些换行符 - 或者您可以使用多次替换来测试所有这些换行符。幸运的是,VBA拥有用于换行的vbConstants,让您的生活更轻松:
myStr = Replace(myStr, vbCr, " ")
myStr = Replace(myStr, vbLf, " ")
myStr = Replace(myStr, vbCrLf, " ") '// or vbNewLine
注意我已经使用空格作为替代,否则你最终会被合并的单词:
一些文字的例子
换行
用零长度字符串""
替换换行符将导致:
带换行符的一些文字示例
而用空格" "
替换会产生:
包含换行符的某些文字的示例
只是为了好玩另一种方式就是这样:
myStr = Join$(Split(myStr, vbCrLf), " ")
这使用换行符作为分隔符将字符串拆分为单个维度数组,然后使用空格连接数组的每个元素。在这种情况下,这两种方法都没有真正的优势。