Как обновить данные всех Excel-файлов, открыв только файл, который используется как источник?

У меня есть мастер-файл, в который подгружаются данные. Далее, есть 10 Excel-файлов, которые берут данные только из мастер-файла (data source).

Как я могу обновить все эти 10 файлов автоматически так, чтобы не заходить в каждый из них, а только в мастер, чтобы обновить данные?
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ответы на вопрос 1
idShura
@idShura
Можно поставить галочку в настройках, чтобы данные обновлялись при открытии файла.

Также можно с помощью vba. В вашем "мастер файле" сделать кнопку которая будет запускать код обновляющий ваши файлы.

Что-то вроде этого:
Sub RefreshWBs()
    Dim CurFile As String, DirLoc As String
    Dim DestWB As Workbook
    Dim ws As Object 'allows for different sheet types
    Dim OrigWB As Workbook
    [COLOR=#0000ff]DirLoc = "H:\MSO\Documents"[/COLOR]
    CurFile = Dir(DirLoc & "\*.xls*")
    
    Application.ScreenUpdating = True
    Application.EnableEvents = False
            
    Do While CurFile <> vbNullString
        Application.DisplayAlerts = False
        
        'Workbooks.Open Filename:=DirLoc & "\" & CurFile
        Set OrigWB = Workbooks.Open(Filename:=DirLoc & "\" & CurFile)
        
        OrigWB.RefreshAll
        Application.DisplayAlerts = True
        OrigWB.Close SaveChanges:=True
        CurFile = Dir
    Loop
 
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.EnableEvents = True
 
      Set DestWB = Nothing
  End Sub
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы