我需要将文本字符串添加到文件夹上的所有文件,作为页脚
例如,在路径上的文件夹上并调用C:\ mobatchscripts \ 我有一个随机数的txt文件,带有文本。 我想添加一行例如" text"在文件夹
上的每个文本文件上我对vba编程知之甚少,但是对于我所阅读的内容我可以使用append,但我需要循环文件夹上的文件并修改它们。
到目前为止,我试过这个:
Sub footer()
Dim FolderPath As String
Dim FileName As String
Dim wb As Excel.Workbook
FolderPath = "C:\mobatchscripts\"
FileName = Dir(FolderPath)
Do While FileName <> ""
Open FileName For Append As #1
Print #1, "test"
Close #1
FileName = Dir
Loop
End Sub
但似乎它没有查看文件或附加文本。
答案 0 :(得分:0)
假设您正在写入文本文件(我在路径中看到&#34;批处理脚本&#34;),您需要引用Microsoft Scripting Runtime(在VBE中您将会这样做)在工具,参考文献中找到它
Option Explicit
Public Sub AppendTextToFiles(strFolderPath As String, _
strAppendText As String, _
blnAddLine As Boolean)
Dim objFSO As FileSystemObject
Dim fldOutput As Folder
Dim filCurrent As File
Dim txsOutput As TextStream
Set objFSO = New FileSystemObject
If objFSO.FolderExists(strFolderPath) Then
Set fldOutput = objFSO.GetFolder(strFolderPath)
For Each filCurrent In fldOutput.Files
Set txsOutput = filCurrent.OpenAsTextStream(ForAppending)
If blnAddLine Then
txsOutput.WriteLine strAppendText
Else
txsOutput.Write strAppendText
End If
txsOutput.Close
Next
MsgBox "Wrote text to " & fldOutput.Files.Count & " files", vbInformation
Else
MsgBox "Path not found", vbExclamation, "Invalid path"
End If
End Sub
我建议您同时添加错误处理,并可能检查文件扩展名,以确保您只能写入您想要的文件。
要添加一行,它将被调用如下:
AppendTextToFiles "C:\mobatchscripts", "Test", True
只需在文件中添加文字 - 没有新行:
AppendTextToFiles "C:\mobatchscripts", "Test", False
或者,忘记params并在proc开始时将它们转换为常量。下次我建议您处理问题的措辞,因为它并不是很清楚您正在努力实现的目标。