2017-02-17 60 views
0

我想知道这是可能的,所以请不要认为这是一个“创造我的项目,我的”后创建报告从多个Excel被自动添加到文件夹不同的文件名的文件

我们每季度向客户发送一次使用情况报告(从购买许可证之日起每90天)。本报告包含主要表格,其中包含30列以上的原始数据。

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

创建这显然是简单的,但我想:

  • 1 - 下载使用报告书(文件名代表客户 名)
  • 2 - 存储在一个文件夹中
  • 3所有这些报告 - 拥有核心的工作簿中检测到新的文件
  • 4 - 核心工作簿读取新的excel文件,数据增加了对核心工作簿
  • 5一个新的工作表 - 删除工作簿(新的使用报告拖入文件夹)中的数据具有后被添加
  • 6 - 核心工作簿从 新数据

所以我问点3,4和5是可能的VBA创建相应的内容(图等)?我根本不熟悉它,直到最近才发现了excel中的宏的可能性。

+0

是的,他们可能与VBA。 –

+0

如果您在处理文件后删除文件,则无需检测新文件,因为您只需处理文件夹中的每个文件即可。 – Gordon

+0

的确如此。谢谢 –

回答

0

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

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 
+0

谢谢!肯定会尝试和实现这一点。 –

相关问题