繁体   English   中英

Excel VBA代码循环遍历文件夹,合并文件,创建图形然后保存在其他位置

[英]Excel VBA code to loop through folders, combine files, create graphs then save in a different location

我正在尝试编写一些VBA代码,但是我对此很陌生。
每个月我都需要通过csv文件为不同的站点制作40多个报告。 到目前为止,我已经有代码来组合csv文件并制作一个图形,但是我需要从具有足够相同名称的文件中再制作两个图形,只有相似性才是“ SimHistory”的开头。
我的想法是让每个站点的所有csv文件组合起来,将数据放入表中,然后从中创建图形,然后将它们保存在这些报告的指定文件夹中。 每个站点都有其自己的文件夹,其中包含4个以上的csv文件,大约40多个站点中,我能够获得其中一个图表并合并文件,但是我无法解决如何遍历所有文件夹并实现所需的所有功能。 任何帮助或基本代码将不胜感激这是到目前为止我一直在使用的:组合:显式选项

Sub CombineFiles()  

Dim Path            As String

Dim FileName        As String

Dim Wkb             As Workbook

Dim WS              As Worksheet



Application.EnableEvents = False

Application.ScreenUpdating = False

Path = "C:\Users\Support\Desktop\automation test stuff\Luncarty\" 'Change as needed

FileName = Dir(Path & "\*.csv", vbNormal)

Do Until FileName = ""

    Set Wkb = Workbooks.Open(FileName:=Path & "\" & FileName)

    For Each WS In Wkb.Worksheets

        WS.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

    Next WS

    Wkb.Close False

    FileName = Dir()

Loop

Application.EnableEvents = True

Application.ScreenUpdating = True



End Sub

Client count chart sheet:
Sub ClientcountChart()

Dim Client_count As Chart

Set Client_count = Charts.Add

With Client_count

    .SetSourceData Source:=Sheets("client_count (2018-06-01)").Range("B1:C28")

    .ChartType = xlColumnClustered

    .ChartTitle.Text = "Daily Client Count"

End With

End Sub

除了sim历史记录表之外,大多数csv文件都具有相同的名称,在SIM历史记录表中,一个或多个csv文件可能是四个。 再次,任何帮助或指导将不胜感激

@Ross:

您需要使用基于FileSystemObject的技巧,这是Excel访问系统文件夹和文件的强大方法。

您只需将一些变量声明为对象:

Dim oFSO, oFolder, Ofile as Object
...
Set oFSO = CreateObject("scripting.filesystemobject")
Set oFolder = oFSO.getfolder(sOrigen)

如果要处理文件夹子文件夹,只需执行以下操作:

For each oSubFolder in oFolder.subfolders
...
Next oSubFolder

如果要处理文件夹中保留的文件,只需执行以下操作:

For each oFile in oFolder.files
...
Next oFile

希望这是您朝着正确方向努力的最佳问候。 安东尼奥

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM