VBA / VBE:循环浏览文件夹中的所有文件,拉动文本并填充到电子表格

时间:2015-03-15 18:47:07

标签: vba excel-vba text-files filesystemobject vbe

我正在尝试创建一个VBE程序,它将打开文件夹中的所有文件,提取出现在所有文件中可预测位置的文本特定文本,并将文本变量填充到电子表格中。

我的问题是我无法更新文本变量以反映每个文件的内容。相反,我得到与文件#1关联的文本变量,一直到列。

在其他修修补补中,我尝试使用FreeFile而不是显式编号文件,但都无济于事。指导非常感谢。

这是我的代码:

Sub Looping()

Dim objFSO As Object, objFolder As Object, objFile As Object, i As Integer

Dim text As String, Dim textline As String, Dim Author As String, Dim AuthPos As Integer

Set objFSO = CreateObject("scripting.FileSystemObject")

Set objFolder = objFSO.GetFolder("C:\Users\User\Desktop\Files")

i = 1

For Each objFile In objFolder.Files

Open objFile For Input As #1
Do Until EOF(1)
Line Input #1, textline
text = text & textline
Loop
Close #1

Author = InStr(text, ", Author.")
Author = Mid(text, Author - 15, Author)
Author = Left(Author, 15)
AuthPos = InStr(Author, ".")
Author = Right(Author, Len(Author) - AuthPos)

Cells(i + 1, 1) = objFile.Name
Cells(i + 1, 2) = objFile.Path
Cells(i + 1, 3) = Author
i = i + 1

Next objFile

End Sub

1 个答案:

答案 0 :(得分:0)

你的子作品!!!

在进入下一个循环之前,只需添加以下行:

text = vbNullString

text变量未被清空,因此它总是附加其他文件中的数据,因此最后一个文件包含来自之前所有文件的数据。