Рішення Юваля може бути достатньо, але тільки якщо зміни обмежуються вмістом комірок. Запитник не вказав, чи це так. Тим не менш: що, якщо зміна, яку ви хочете отримати, - це додавання (можливо, навіть видалення) робочих аркушів до робочої книги?
Різновид крихкого та примхливого рішення: зберігайте макрос у прихованому ОСОБА.XLS (B), щоб виконувати періодичну (шляхом перепланування себе) робочу книжку закрити та знову відкрити. PERSONAL.XLS (B) можна знайти на% USERPROFILE% \ AppData \ Роумінг \ Microsoft \ Excel \ XLSTART \)
Sub wkbRefresher()
Dim refreshedWorkbook As Workbook
Dim WkBks As Workbooks
'full filepath
fPath = "c:\tmp\mutatingWorkbook.xls"
'in HH:MM:SS format:
refreshInterval = "00:05:00"
For i = 1 To Application.Workbooks.Count
Debug.Print (Application.Workbooks.Item(i).FullName)
If LCase(Application.Workbooks.Item(i).FullName) = LCase(fPath) Then
Debug.Print (" Yep thats the one! Lets refresh it.")
Application.Workbooks.Item(i).Close
'refreshedWorkbook = WkBks.Open(fPath, True, True)
Set refreshedWorkbook = Excel.Application.Workbooks.Open(fPath, True, True)
End If
Next i
' Use at your own risk: this is an "asynchronous", the execution cannot be stopped by merely pressing the stop button in the VBA interface.
' You might have to do something like put a break marker on the line OnTime line so that next time around, it doesn't respawn itself.
Application.OnTime Now + TimeValue(refreshInterval), "wkbRefresher"
End Sub
Звичайно, вищезазначений підрозділ може бути параметризований та / або ви можете приєднати його до спеціальної кнопки панелі інструментів чи чогось іншого. Оскільки збереження робочої книги зберігає інформацію про стан активного аркуша, активної комірки тощо, ви також можете включити кілька рядків для збереження бажаного імені активного аркуша та повторно активувати його щоразу після повторного відкриття.
Список літератури:
http://office.microsoft.com/en-us/excel-help/run-a-macro-HP010342865.aspx
http://msdn.microsoft.com/en-us/library/office/ff196165(v=office .14) .aspx
Хоча я все не перевіряв, це, здається, є дуже корисним вступом, якщо ви не чули про PERSONAL.XLS (B): http://www.rondebruin.nl/win/personal.htm