从多个excel文件创建报告,这些文件将自动添加到具有不同文件名的文件夹中

从多个excel文件创建报告,这些文件将自动添加到具有不同文件名的文件夹中,excel,vba,synchronization,spreadsheet,Excel,Vba,Synchronization,Spreadsheet,我想知道这是否可行,因此请不要将此视为“为我创建我的项目”帖子 我们每季度向客户发送一次使用情况报告(自客户购买许可证之日起,每90天发送一次)。此报表包含包含30多列原始编号数据的主表 我想创建一个简单的>将新报告拖动到文件夹>将主工作簿的结果粘贴到报告中 创建一个很明显很简单,但我想: 下载使用情况报告(文件名代表客户端 (姓名) 将所有这些报告存储在单个文件夹中 让核心工作簿检测新文件 核心工作簿读取新的excel文件,将数据添加到核心工作簿上的新工作表中 添加数据后删除工作簿(新的使用情

我想知道这是否可行,因此请不要将此视为“为我创建我的项目”帖子

我们每季度向客户发送一次使用情况报告(自客户购买许可证之日起,每90天发送一次)。此报表包含包含30多列原始编号数据的主表

我想创建一个简单的>将新报告拖动到文件夹>将主工作簿的结果粘贴到报告中

创建一个很明显很简单,但我想:

  • 下载使用情况报告(文件名代表客户端 (姓名)
  • 将所有这些报告存储在单个文件夹中
  • 让核心工作簿检测新文件
  • 核心工作簿读取新的excel文件,将数据添加到核心工作簿上的新工作表中
  • 添加数据后删除工作簿(新的使用情况报告拖到文件夹中)
  • 核心工作簿从 新数据

  • VBA是否可以使用3、4和5?我对它一点也不熟悉,直到最近才发现在excel中使用宏的可能性。

    下面我有一个宏,可以逐个打开文件夹中的所有工作簿,您会注意到我在其中注释了一个部分,您可以在这里输入代码并对给定工作簿执行操作。这将循环遍历文件夹中的每个工作簿,直到没有剩余工作簿为止

    Sub ImportMacro()
    
    'PURPOSE: To loop through all Excel files in a user specified folder and perform a set task on them'
    Dim wb As Workbook
    Dim myPath As String
    Dim myFile As String
    Dim myExtension As String
    Dim FldrPicker As FileDialog
    
    'Values in sheets'
    Dim VolatilityPortfolio As String
    Dim ColValue As String
    VolatilityPortfolio = "VolatilityPortfolio"
    
    'Optimize Macro Speed'
      Application.ScreenUpdating = False
      Application.EnableEvents = False
      Application.Calculation = xlCalculationManual
    
    'Retrieve Target Folder Path From User'
      Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
    
        With FldrPicker
          .Title = "Select A Target Folder"
          .AllowMultiSelect = False
            If .Show <> -1 Then GoTo NextCode
            myPath = .SelectedItems(1) & "\"
        End With
    
    'In Case of Cancel'
    NextCode:
      myPath = myPath
      If myPath = "" Then GoTo ResetSettings
    
    'Target File Extension (must include wildcard "*")'
      myExtension = "*.xl??"
    
    'Target Path with Ending Extention'
      myFile = Dir(myPath & myExtension)
    
    'Loop through each Excel file in folder'
      Do While myFile <> ""
        'Set variable equal to opened workbook'
          Set wb = Workbooks.Open(Filename:=myPath & myFile)
    '-------------------- Below is the worksheet macro --------------------------'
    
    'To open the currentworkbook
     Workbooks(myFile).activate
    
    
    '---------------------------- Above is the worksheet macro ----------------------- '
    'Save and Close Workbook as CSV'
          wb.Close SaveChanges:=True
    
    
        'Get next file name'
          myFile = Dir
      Loop
    
    'Message Box when tasks are completed'
      MsgBox "Task Complete!"
    
    ResetSettings:
      'Reset Macro Optimization Settings'
        Application.EnableEvents = True
        Application.Calculation = xlCalculationAutomatic
        Application.ScreenUpdating = True
    
    End Sub
    
    Sub-ImportMacro()
    '目的:循环浏览用户指定文件夹中的所有Excel文件并对其执行设置任务'
    将wb设置为工作簿
    将myPath设置为字符串
    将myFile设置为字符串
    Dim myExtension作为字符串
    Dim FldrPicker As FILE对话框
    “表中的值”
    作为字符串的Dim VOLARITYPORTFOIO
    将值设置为字符串
    volatityportfolio=“volatityportfolio”
    “优化宏速度”
    Application.ScreenUpdating=False
    Application.EnableEvents=False
    Application.Calculation=xlCalculationManual
    '从用户检索目标文件夹路径'
    Set FldrPicker=Application.FileDialog(msoFileDialogFolderPicker)
    用FldrPicker
    .Title=“选择目标文件夹”
    .AllowMultiSelect=False
    如果.Show-1,则转到下一个代码
    myPath=.SelectedItems(1)和“\”
    以
    “如果取消”
    下一个代码:
    myPath=myPath
    如果myPath=”“,则转到重置设置
    '目标文件扩展名(必须包括通配符“*”)'
    myExtension=“*.xl??”
    '具有结束扩展名的目标路径'
    myFile=Dir(myPath&myExtension)
    '循环浏览文件夹中的每个Excel文件'
    当我的文件“”时执行此操作
    '将变量设置为等于打开的工作簿'
    设置wb=Workbooks.Open(文件名:=myPath&myFile)
    '--------------下面是工作表宏------------------
    '以打开当前工作簿
    工作簿(myFile)。激活
    “------------------------------以上是工作表宏----------------”
    '将工作簿另存并关闭为CSV'
    wb.Close SaveChanges:=真
    '获取下一个文件名'
    myFile=Dir
    环
    '任务完成时的消息框'
    MsgBox“任务完成!”
    重置设置:
    “重置宏优化设置”
    Application.EnableEvents=True
    Application.Calculation=xlCalculationAutomatic
    Application.ScreenUpdating=True
    端接头
    
    是的,VBA可以实现这些功能。如果在处理完文件后删除这些文件,则不需要检测新文件,因为您可以简单地处理文件夹中的每个文件。这是正确的。谢谢你!肯定会尝试并实施这一点。