Excel VBA 如何把单元格中的多行文字输出到txt中

比如Excel某一个单元格A1里面的文字用Alt-Enter分成了3行:
AAAA
BBBB
CCCC

用VBA把它输出到TXT文件里后变成了一行AAAABBBBCCCC
用函数Replace(Str,Chr(13),Chr(10))替换无效。
谢谢高手们踊跃回答,望审清题。
AAAA
BBBB
CCCC
以上内容原本就在一个单元格里,用VBA输出到TXT里的文字后,用记事本看是AAAABBBBCCCC
现在希望输出到TXT文件里仍然保持多行。

楼主,多行变成一行,这个功能不必用函数实现,用Excel的区域转换就可以实现

操作如下:

1。选中AAAA,BBBB,CCCC所在的三行,
2。拉宽列宽至可以装下 AAAABBBBCCCC的宽度.
3。选编辑菜单-->填充-->内容重排
4。此时三行内容就合并成一行了,不同的是内容间多了一个空格,用查找替换功能将空格替成没有就完成了

如果一定要在VBA中实现,也不用函数直接用 文本连接符 "&" 就好.

如: Cells(1,1) & Cells(2,1) & Cells(3,1)

如果以上回答还不能满足您要求,Hi我, 我们来讨论一下.

-----------------------------------------------------------------------------------
的确看错,再来回答此题.

如果您单行文本中有换行符的话,这个换行符在Excel上是隐藏的,但是虽然是隐藏的也是可以用查找替换将之替掉的. 方法如下:

查找 Alt+10 换成为的地方不输入(即换成什么都没有,就是删除), 确定即可

需要注意的是,Alt+10就是那个隐性的换行符,它的输入需要注意,是按住Alt不放,再按1 和0 , 且这个1和0 一定是小写数字键盘上的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-24
楼上的看错了吧.人家的数据是在一个单元格里的...
Cells(1,1) & Cells(2,1) & Cells(3,1) 这么连..离题了

我试了下用这个可以
str = Replace(str, Chr(10), "")

Sub Macro1()

Dim str As String
str = Range("A1").Value
str = Replace(str, Chr(10), "")
MsgBox str
End Sub本回答被提问者采纳
相似回答