1

我正在尝试创建一个 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
4

1 回答 1

0

你的子工作!!!

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

text = vbNullString

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

于 2015-03-15T20:40:17.717 回答