将包含换行符的文本文件导入Excel

时间:2012-01-06 14:20:46

标签: excel excel-vba vba

在导出到Excel时,我发现了以下问题。

如果你创建一个表格,其中一个单元格有一个换行符,你将文档保存为txt文件,它将如下所示:

"firstLine<LF>secondLine"<TAB>"secondColoumn"

当我在Excel中打开此文件时,换行符消失,第一行只有一个单元格,其值为 firstLine

你知道是否有可能保持换行符?

编辑:适用于Excel2010。不知道其他版本是否表现不同。

EDIT2:重现的步骤:

  1. 打开空白Excel工作表
  2. 输入文字(第一列包含换行符,第二列不重要)
  3. 另存为Unicode文本(txt)//所有其​​他txt也不能正常工作
  4. 关闭Excel文件
  5. 文件&GT;打开
  6. 即将进行的对话框无变化。
  7. excel文件现在有两行是错误的。

2 个答案:

答案 0 :(得分:5)

我终于能够解决问题了! yay:D

CSV:

德语Excel需要分号作为分隔符。逗号不起作用。

注意:仅当文件编码为UTF-8且文件开头有BOM时才会出现这种情况。如果是ASCII编码的逗号确实可以作为分隔符使用。

TXT:

编码必须是UTF-16LE。它也需要以制表符分隔。

重要: 如果使用“文件 - >打开”对话框打开它们并“导入”它们,文件仍将显示不正确。将它们拖放到Excel中或通过双击打开。

答案 1 :(得分:1)

这不是问题 - 在预期行为意义上 - 当您将文字保存为UnicodeText (tab delimited)

时,这是固有的

如果将文件另存为unicode,然后再将其保存为

  1. 在记事本中打开它
  2. 在Excel中导入
  3. 您将看到包含换行符的单元格被“”

    包围

    以下示例显示了两个换行符

    • A1使用Alt + Enter
    • 分隔条目
    • B1有一个使用公式CHAR(10)的enry initial

    该图片还显示了记事本在保存的Unicode版本

    上看到的内容

    建议的解决方法1-手动方法

    1. 在Excel中,选择“编辑”&gt;替换
    2. 点击查找内容框
    3. 按住Alt键,然后(在数字键盘上),键入0010 step 3
    4. 替换为双管分隔符

      Step 4

    5. 另存为Unicode
    6. 然后在需要重新插入换行符时撤消该过程
    7. 这可以在VBA中轻松完成

      建议的解决方法2 - VBA替代方案

      Const strDelim = "||"
      
      Sub LBtoPIPE()
      ActiveSheet.UsedRange.Replace Chr(10), strDelim, xlPart
      ActiveSheet.UsedRange.Replace "CHAR(10)", strDelim, xlPart
      End Sub
      
      Sub PIPEtoLB()
      ActiveSheet.UsedRange.Replace strDelim, Chr(10), xlPart
      ActiveSheet.UsedRange.Replace strDelim, "CHAR(10)", xlPart
      End Sub