¿Cómo puedo actualizar un documento que tengo abierto en Excel en modo de solo lectura?

8

Tengo un documento de Excel que se almacena en un servidor de SharePoint, que siempre he abierto en mi computadora en modo de solo lectura porque necesito consultarlo.

De vez en cuando, para obtener los últimos cambios, tengo que cerrar el archivo y volver a cargarlo. ¿Hay alguna opción dentro de Excel 2007 que me permita simplemente actualizar un documento que he abierto en modo de solo lectura a la última versión del servidor?

Mejor aún, ¿hay alguna forma en que esto se pueda hacer dinámicamente, sin que tenga que presionar actualizar?

RoboShop
fuente
Solo intentaba lo mismo: parece que la respuesta sigue siendo "NO", no hay actualización de estilo F5 para Excel. También me pareció imposible abrir un archivo de la lista utilizada más recientemente de Excel como de solo lectura (debe ingresar al navegador de archivos antes de poder hacerlo) ... Y no puede hacer que su hoja de cálculo abierta actualmente sea de solo lectura ... Y Excel le permite ingresar texto en una hoja de cálculo de solo lectura ... Todo muy molesto.
Bill K

Respuestas:

1

La solución de Yuval puede ser suficiente, pero solo si los cambios se limitan al contenido de la celda. El investigador no indicó si este es el caso. Sin embargo: ¿qué pasa si el cambio que desea recoger es la adición de (tal vez incluso la eliminación de) hojas de trabajo en el libro?

Una especie de solución frágil y desagradable: almacene una macro en su PERSONAL.XLS (B) oculto para realizar un cierre periódico y volver a abrirlo (reprogramando). PERSONAL.XLS (B) debe encontrarse en% 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

Por supuesto, el subtítulo anterior podría parametrizarse y / o podría adjuntarlo a un botón de barra de herramientas personalizado o algo así. Como guardar el libro de trabajo guarda la información de estado de la hoja activa, la celda activa, etc., es posible que también desee incluir algunas líneas para guardar el nombre de la hoja activa preferida y reactivarlo cada vez que se vuelva a abrir.

Referencias

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

Aunque no examiné todo, esta parece ser una introducción muy útil si no has oído hablar de PERSONAL.XLS (B): http://www.rondebruin.nl/win/personal.htm

Justin
fuente
0

Esto podría ayudar:

un autor del libro de trabajo puede crear un libro de trabajo que actualice automáticamente los datos externos cuando se abre el libro de trabajo seleccionando la casilla de verificación Actualizar datos al abrir el archivo en el cuadro de diálogo Propiedades de conexión.

Aquí es donde lo consigo. Es un articulo interesante. ¿Esto ayuda?

Yuval
fuente