2014-09-13 72 views
-1

我想替换一些文本,包括换行符,但它不起作用。使用Chr(10),Chr(13)和Chr(10)+ Chr(13)组合。没有用。有任何想法吗?下面的代码:如何正确替换使用VBA的文本文件中的新行符号?

Sub Replacetext() 

Dim MyFolder As String 
Dim MyFile As String 
Dim Fname As String 


MyFolder = "D:\Excel" 
MyFile = Dir(MyFolder & "\*.txt") 

Do While MyFile <> "" 
Fname = MyFolder & "\" & MyFile 
Workbooks.OpenText Fname 

Cells.Replace What:="a" & Chr(13) & "a", Replacement:="b" & Chr(13) & "b" _ 
    SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False, lookat:=xlWhole 

ActiveWorkbook.Close savechanges:=1 
MyFile = Dir 
Loop 
End Sub 
+0

为什么不使用'vbCrLf'?这应该匹配dos格式文件上的新行。你的文本文件来自Unix系统吗? – Matt 2014-09-13 20:12:14

+0

不起作用。文本文件是在Windows操作系统中手动创建的。 – Ascorpio 2014-09-13 20:18:02

+0

还有,当我尝试替换文本没有换行符时,用包含换行符的文本我得到额外的“” – Ascorpio 2014-09-13 20:30:07

回答

0

简答

你正在寻找的ANSI代码只是10

再回应

行了,也许这将帮助你。我在这样的单元格中创建了多行数据:

This is 
Multiline 

"A1"。然后我想看看这些空白的代码是什么。

Public Sub ToAnsi() 
    Dim strCellData As String 
    strCellData = Range("A1").Value 

    For i = 1 To Len(strCellData) 
     MsgBox Asc(Mid$(strCellData, i, 1)) 
    Next 
End Sub 

通过手段不够优雅,但我们从MsgBox得到答案。我能够确定新行空格码是10。这对我来说是一个惊喜。我的测试是在Excel 2010中

更新

我注意到你缺少你Cells.replace的第一行尾随逗号。因此,它应该是:

Cells.Replace What:="a" & Chr(13) & "a", Replacement:="b" & Chr(13) & "b", _ 

还要考虑以下数据。第一行包含多行数据。

 A   B   C 
1 This is  a 
    Multiline a 
2 

如果我和我的ANSI数字和类似的数据,即使编辑细胞C1运行你的代码对我的表。

Range("C1").Value = "c" & Chr(10) & "c" 
Cells.Replace What:="a" & Chr(10) & "a", Replacement:="b" & Chr(10) & "b", _ 
    SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False, lookat:=xlWhole 

    A   B   C 
1 This is  b   c 
    Multiline b   c 
2 

如果它不适合你我觉得你需要更多的调试或更多的信息。此外,这里是一个图片的情况下,“单元格”的格式不是最好的。

enter image description here

+0

仍然不起作用。 – Ascorpio 2014-09-13 21:56:17

+0

我会测试你的代码对多线单元格。换行后,我会换一个。按照我更新的答案检查你的语法。虽然我怀疑这是你的最终问题。你也应该尝试分解你的一个单元格,因为我有测试。 – Matt 2014-09-13 22:09:32

+0

是的,它适用于你描述的情况。但是现在我发现我的问题是加载文本文件。如何在一个单元格中加载文本文件而不是多个单元格。 – Ascorpio 2014-09-14 14:21:58

相关问题