【问题标题】:Replace text of all csv's in all the subfolders替换所有子文件夹中所有 csv 的文本
【发布时间】:2014-07-30 07:04:03
【问题描述】:

我有一个代码来替换文件夹中所有文件的文本。但我还需要替换所有子文件夹中的文本。我是怎么做到的?

Sub ProcessFiles()
Dim Filename, Pathname As String
Dim wb As Workbook

Pathname = "C:\Users\pabitra.pradhan\Downloads\RATES\"
Filename = Dir(Pathname & "*.csv")
Do While Filename <> ""
    Set wb = Workbooks.Open(Pathname & Filename)
    DoWork wb
    wb.Close SaveChanges:=True
    Filename = Dir()
Loop
End Sub

Sub DoWork(wb As Workbook)
With wb
    .Worksheets(1).Select
    Cells.Replace What:="MDL04", Replacement:="MDL05", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False
End With
End Sub

【问题讨论】:

  • 您可能会发现使用FileSystemObject 递归子目录更容易。

标签: vba excel csv dir


【解决方案1】:

你需要做同样的递归:

Sub ProcessFiles(myFolder As String)

Dim Filename, Pathname As String
Dim wb As Workbook

Filename = Dir(myFolder & "*.csv")
  Do While Filename <> ""
    Set wb = Workbooks.Open(myFolder & Filename)
    DoWork wb
    wb.Close SaveChanges:=True
    Filename = Dir()
 Loop

Dim FSfolder As Folder 

Set FSfolder = FS.GetFolder(myFolder ) 

For Each mySubFolder In FSfolder.SubFolders
    Call ProcessFiles(FSfolder.Path)
Next

End Sub

【讨论】:

    猜你喜欢
    • 2013-05-30
    • 2014-12-26
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2020-07-02
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多