Wie kann ich ein Dokument, das ich in Excel geöffnet habe, im schreibgeschützten Modus aktualisieren?

8

Ich habe ein Excel-Dokument, das auf einem SharePoint Server gespeichert ist und das ich immer im schreibgeschützten Modus auf meinem Computer geöffnet habe, da ich darauf verweisen muss.

Um die neuesten Änderungen zu erhalten, muss ich die Datei von Zeit zu Zeit schließen und erneut laden. Gibt es in Excel 2007 Optionen, mit denen ich ein Dokument, das ich im schreibgeschützten Modus geöffnet habe, einfach auf die neueste Version auf dem Server aktualisieren kann?

Besser noch, gibt es eine Möglichkeit, dies dynamisch zu tun, ohne dass ich auf Aktualisieren klicken muss?

RoboShop
quelle
Ich habe nur das Gleiche versucht - es sieht so aus, als ob die Antwort immer noch "NEIN" lautet. Es gibt keine Aktualisierung im F5-Stil für Excel. Ich fand es auch unmöglich, eine Datei aus der zuletzt verwendeten Excel-Liste als schreibgeschützt zu öffnen (Sie müssen in den Dateibrowser gehen, bevor Sie dies tun können) ... und Sie können Ihre derzeit geöffnete Tabelle nicht schreibgeschützt machen ... und mit Excel können Sie Text in eine schreibgeschützte Tabelle eingeben ... Alles sehr ärgerlich.
Bill K

Antworten:

1

Yuvals Lösung könnte ausreichen, aber nur, wenn Änderungen auf den Zellinhalt beschränkt sind. Der Ermittler hat nicht angegeben, ob dies der Fall ist. Dennoch: Was ist, wenn die Änderung, die Sie übernehmen möchten, das Hinzufügen (möglicherweise sogar Entfernen) von Arbeitsblättern in der Arbeitsmappe ist?

Eine Art spröde und glückliche Lösung: Speichern Sie ein Makro in Ihrer versteckten PERSONAL.XLS (B), um eine regelmäßige (durch Neuplanung) Arbeitsmappe zu schließen und erneut zu öffnen. PERSONAL.XLS (B) sollte unter% USERPROFILE% \ AppData \ Roaming \ Microsoft \ Excel \ XLSTART \) gefunden werden.

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

Natürlich kann das obige Sub parametriert werden und / oder Sie können es an eine benutzerdefinierte Symbolleistenschaltfläche oder etwas anhängen. Da beim Speichern der Arbeitsmappe die Statusinformationen für das aktive Blatt, die aktive Zelle usw. gespeichert werden, möchten Sie möglicherweise auch einige Zeilen einfügen, um Ihren bevorzugten Namen für das aktive Blatt zu speichern und ihn jedes Mal nach einem erneuten Öffnen erneut zu aktivieren.

Verweise:

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

Obwohl ich nicht alles überprüft habe, scheint dies eine sehr hilfreiche Einführung zu sein, wenn Sie noch nichts von PERSONAL.XLS (B) gehört haben: http://www.rondebruin.nl/win/personal.htm

Justin
quelle
0

Dies könnte helfen:

Ein Arbeitsmappenautor kann eine Arbeitsmappe erstellen, die externe Daten beim Öffnen der Arbeitsmappe automatisch aktualisiert, indem er im Dialogfeld Verbindungseigenschaften das Kontrollkästchen Daten beim Öffnen der Datei aktualisieren aktiviert.

Hier bekomme ich es. Es ist ein interessanter Artikel. Hilft das?

Yuval
quelle