2014-09-26 3 views
0

Мне нужно регулярно обновлять несколько сводных таблиц из разных книг из нашей базы данных SQL.обновить сводную таблицу в нескольких активных книгах сразу

Что это самый простой способ сделать это? Обновление сводной таблицы в разных книгах сразу? это нормально, если оно находится в формате vba.

+0

* Workbook Object * есть * RefreshAll * метод, который обновляет все соединения , pivots, формулу и т. д. В VBA-форме 'Workbooks (« Workbookname »). RefreshAll' – L42

ответ

0

нормально код .below задаст вам путь к папке, где существуют файлы Excel (который должен быть обновлен.)

Source :

Sub LoopAllExcelFilesInFolder() 

'PURPOSE: To loop through all Excel files in a user specified folder and perform a set task on them 
'SOURCE: www.TheSpreadsheetGuru.com 

Dim wb As Workbook 
Dim myPath As String 
Dim myFile As String 
Dim myExtension As String 
Dim FldrPicker As FileDialog 

'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 Exit Sub 

'Target File Extension (must include wildcard "*") 
    myExtension = "*.xls" 

'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) 

    'Refresh the workbook 
     wb.refreshall 

    'Save and Close Workbook 
     wb.Close SaveChanges:=True 

    'Get next file name 
     myFile = Dir 
    Loop 

'Message Box when tasks are completed 
    MsgBox "Task Complete!" 

'Reset Macro Optimization Settings 
    Application.ScreenUpdating = True 
    Application.EnableEvents = True 
    Application.Calculation = xlCalculationAutomatic 

End Sub 
0

это потрясающе! он работает .. все, что мне нужно сделать, это наблюдать результат после обновления .. если его работа 100% с точки зрения вывода, который мне нужен.

+0

Для добавления дополнительной информации используйте ссылку для редактирования. Кнопка «Ответ на сообщение» должна использоваться только для полных ответов на вопрос. – Luke

+0

извините, я всего лишь новичок – Istian

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