VBA excel:如何将文本添加到文件夹

时间:2016-01-04 22:46:50

标签: excel vba excel-vba

我需要将文本字符串添加到文件夹上的所有文件,作为页脚

例如,在路径上的文件夹上并调用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

但似乎它没有查看文件或附加文本。

1 个答案:

答案 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开始时将它们转换为常量。下次我建议您处理问题的措辞,因为它并不是很清楚您正在努力实现的目标。