Rozwiązanie Yuvala może wystarczyć, ale tylko jeśli zmiany są ograniczone do zawartości komórki. Pytający nie wskazał, czy tak jest. Niemniej jednak: co jeśli zmianą, którą chcesz wybrać, jest dodanie (a może nawet usunięcie) arkuszy w skoroszycie?
Coś w rodzaju kruchego i szczęśliwego rozwiązania: przechowuj makro w ukrytym PERSONAL.XLS (B), aby okresowo (poprzez zmianę harmonogramu) skoroszytu zamknąć i ponownie otworzyć. PERSONAL.XLS (B) należy znaleźć w% USERPROFILE% \ AppData \ Roaming \ 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
Oczywiście powyższy sub można sparametryzować i / lub możesz dołączyć go do niestandardowego przycisku paska narzędzi lub czegoś takiego. Ponieważ zapisywanie skoroszytu powoduje zapisanie informacji o aktywnym arkuszu, aktywnej komórce itp., Możesz również dodać kilka wierszy, aby zapisać preferowaną nazwę aktywnego arkusza i aktywować go za każdym razem po ponownym otwarciu.
Bibliografia:
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
Chociaż nie sprawdziłem tego wszystkiego, wydaje się to bardzo pomocne wprowadzenie, jeśli nie słyszałeś o PERSONAL.XLS (B): http://www.rondebruin.nl/win/personal.htm