Come posso aggiornare un documento che ho aperto in Excel in modalità di sola lettura?


8

Ho un documento Excel archiviato in un SharePoint Server, che ho sempre aperto sul mio computer in modalità di sola lettura perché devo fare riferimento ad esso.

Ogni tanto, per ottenere le ultime modifiche, devo chiudere il file e ricaricarlo di nuovo. Esistono opzioni in Excel 2007 che mi consentono di aggiornare semplicemente un documento che ho aperto in modalità di sola lettura all'ultima versione sul server?

Meglio ancora, c'è un modo in cui ciò potrebbe essere fatto in modo dinamico, senza che io debba premere refresh?


Stavo solo provando la stessa cosa - sembra che la risposta sia ancora "NO", non esiste un aggiornamento in stile F5 per Excel. Ho anche trovato impossibile aprire un file dall'elenco di Excel usato più di recente in sola lettura (devi accedere al browser dei file prima di poterlo fare) ... E non puoi rendere il tuo foglio di calcolo attualmente aperto in sola lettura ... Ed Excel ti consente di inserire il testo in un foglio di calcolo di sola lettura ... Tutto molto fastidioso.
Bill K,

Risposte:


1

La soluzione di Yuval potrebbe essere sufficiente, ma solo se le modifiche sono limitate al contenuto delle cellule. Il richiedente non ha indicato se questo è il caso. Tuttavia: cosa succede se la modifica che si desidera raccogliere è l'aggiunta (forse anche la rimozione di) fogli di lavoro nella cartella di lavoro?

Una specie di soluzione fragile e schifosa: archivia una macro nella PERSONAL.XLS (B) nascosta per eseguire una cartella di lavoro periodica (riprogrammando se stessa) e riaprirla. PERSONAL.XLS (B) dovrebbe essere trovato in% 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

Ovviamente il suddetto sottotitolo può essere parametrizzato e / o è possibile collegarlo a un pulsante della barra degli strumenti personalizzato o qualcosa del genere. Poiché il salvataggio della cartella di lavoro salva le informazioni sullo stato del foglio attivo, della cella attiva, ecc., Potresti anche voler includere alcune righe per salvare il nome del foglio attivo preferito e riattivarlo ogni volta dopo una riapertura.

Riferimenti:

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

Anche se non ho controllato tutto, questa sembra essere un'introduzione molto utile se non hai sentito parlare di PERSONAL.XLS (B): http://www.rondebruin.nl/win/personal.htm


0

Questo potrebbe aiutare:

un autore di una cartella di lavoro può creare una cartella di lavoro che aggiorna automaticamente i dati esterni all'apertura della cartella di lavoro selezionando la casella di controllo Aggiorna dati all'apertura del file nella finestra di dialogo Proprietà connessione.

Questo è dove lo capisco. È un articolo interessante. questo aiuta?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.