2017-02-17 24 views
0

Я хотел бы знать, если это возможно, поэтому, пожалуйста, не видят в этом «создать мой проект для меня» постСоздание отчета от множества файлов Excel, которые добавляются автоматически в папку с разными именами файлов

Мы отправляем отчеты об использовании нашим клиентам один раз в квартал (каждые 90 дней с даты приобретения лицензии). Этот отчет содержит основные таблицы с 30 + столбцами данных необработанных чисел.

Я хочу создать простой> перетащить новый отчет в папку> Результаты пасты основной книги в отчет

Создания это, очевидно, простые, но я хочу:

  • 1 - Загрузить использование отчет (имя файла представляет имя клиента )
  • 2 - Храните все эти сообщения в одной папке
  • 3 - есть ядро ​​рабочей книги обнаружить новый файл
  • 4 - Core книги читает новый Excel файл, добавляет данные в новый лист на основных книгах
  • 5 - Удаление книги (новый отчет использования втянут в папку) после того, как данные имеют добавлено
  • 6 - Core книга создает соответствующий контент (графики и т.д.) от новых данных

Вот я и спрашиваю, если точка 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

спасибо! определенно собирается попытаться реализовать это. –

 Смежные вопросы

  • Нет связанных вопросов^_^