我正在尝试创建一个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
答案 0 :(得分:0)
你的子作品!!!
在进入下一个循环之前,只需添加以下行:
text = vbNullString
text
变量未被清空,因此它总是附加其他文件中的数据,因此最后一个文件包含来自之前所有文件的数据。