2014-09-13 181 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

相關問題