我通過@Scott Holtzman發現了這段代碼,我需要稍微調整一下以符合我的需求。該代碼將每行放在一個文本文件中,並將其放入Excel工作表(A1,B1,C1等)中的單獨列中,每個文本文件存儲在一個單獨的行(1,2,3等)中。首先,我希望它只將文本放入Excel表格中,如果行以特定文本開始,則我希望它僅將每行中的一些文本複製到Excel表格中。如何將文件中的特定文本導入到excel中?
Sub ReadFilesIntoActiveSheet()
Dim fso As FileSystemObject
Dim folder As folder, file As file, FileText As TextStream
Dim TextLine As String, Items() As String
Dim i As Long, cl As Range
' Get a FileSystem object
Set fso = New FileSystemObject
' get the directory you want
Set folder = fso.GetFolder("D:\YourDirectory\")
Dim x As Long
x = 1 'to offset rows for each file
' Loop thru all files in the folder
For Each file In folder.Files
' set the starting point to write the data to
Set cl = ActiveSheet.Cells(x, 1)
' Open the file
Set FileText = file.OpenAsTextStream(ForReading)
Dim j As Long
j = 0 'to offset columsn for each line
' Read the file one line at a time
Do While Not FileText.AtEndOfStream
TextLine = FileText.ReadLine 'read line
cl.Offset(, j).Value = TextLine 'fill cell
j = j + 1
Loop
' Clean up
FileText.Close
x = x + 1
Next file
Set FileText = Nothing
Set file = Nothing
Set folder = Nothing
Set fso = Nothing
End Sub
這裏是我的文本文件看起來像:
From:NameName 'want all text except the "FROM:"
Date:yyyy.mm.dd 'want all text except the "Date:"
Type: XXXXXXXXX ' I don't want this line into excel
To: namename ' I don't want this line into excel
----------------------------- xxxxxxx ---------------------
A1: Tnr xxxxxxxxxxxxx 'want all text except the "A1: Tnr" only next 13char
A2: texttext 'want all text except the "A2:"
An: 'A1 and up to A14
A14: texttext 'want all text except the "A14:"
------------------------------ xxxxxx ----------------------
所以總計有22行文本文件。
如果可以使用FROM :, DATE :, A1:到A14:作爲第一行中的標題,這將是史詩般的。
曾嘗試我的方式谷歌它,並嘗試了一下這個:
TextLine = FileText.ReadLine 'read line
If InStr(TextLine, "A1:")
但僅適用於一條線,我似乎無法得到它與幾行工作。另外,它將輸出放在單元格F1中,而不是A1中。認爲這是因爲文本文檔中的每一行都有一個單元格 - 即使沒有寫入任何內容。
所以,我正確理解您的文本文件中包含17行(「A1」,「A2」類型的14)...?如果不是,你能否提供更準確的信息,說明你的文件是什麼樣的?我是否正確理解您實際上想要爲每個文件填充一個Excel行,其中每列對應於文件中的一行? – trincot
嘗試根據您的評論更新問題,是的,您理解正確,第1行中的文本文件A中包含A1,B1,C1等中的行,第2行中的文本文件B中包含A2,B2,C2中的行等等。 – Einar