Como atualizar um documento que abri no Excel no modo somente leitura?

8

Eu tenho um documento do Excel armazenado em um SharePoint Server, que sempre abro no meu computador no modo somente leitura, porque preciso fazer referência a ele.

De vez em quando, para obter as alterações mais recentes, tenho que fechar o arquivo e recarregá-lo novamente. Existem opções no Excel 2007 que permitem simplesmente atualizar um documento que abri no modo somente leitura para a versão mais recente no servidor?

Melhor ainda, existe uma maneira de fazer isso dinamicamente, sem que eu precise atualizar?

RoboShop
fonte
Eu estava apenas tentando a mesma coisa - parece que a resposta ainda é "NÃO", não há atualização de estilo F5 para o Excel. Também achei impossível abrir um arquivo da lista usada mais recentemente do Excel como somente leitura (você precisa acessar o navegador de arquivos antes de fazer isso) ... E não é possível tornar sua planilha aberta somente leitura no momento ... E o Excel permite inserir texto em uma planilha somente leitura ... Tudo muito irritante.
Bill K

Respostas:

1

A solução de Yuval pode ser suficiente, mas apenas se as alterações forem limitadas ao conteúdo da célula. O inquiridor não indicou se esse é o caso. No entanto: e se a alteração que você deseja captar for a adição (talvez até a remoção) de planilhas na pasta de trabalho?

Tipo de solução quebradiça e nojenta: armazene uma macro em seu PERSONAL.XLS (B) oculto para executar uma pasta de trabalho periódica (reagendando-se) fechar e reabrir. PERSONAL.XLS (B) deve ser encontrado em% 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

Obviamente, o sub acima pode ser parametrizado e / ou você pode anexá-lo a um botão personalizado da barra de ferramentas ou algo assim. Como o salvamento da pasta de trabalho salva as informações de estado da planilha, célula ativa, etc. ativas, convém incluir algumas linhas para salvar seu nome de planilha ativo preferido e reativá-lo sempre que for reaberto.

Referências:

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

Embora eu não tenha examinado tudo, essa parece ser uma introdução muito útil se você nunca ouviu falar de PERSONAL.XLS (B): http://www.rondebruin.nl/win/personal.htm

Justin
fonte
0

Isso pode ajudar:

o autor de uma pasta de trabalho pode criar uma pasta de trabalho que atualize automaticamente os dados externos quando a pasta de trabalho for aberta, selecionando a caixa de seleção Atualizar dados ao abrir o arquivo na caixa de diálogo Propriedades da conexão.

É aqui que eu entendo. É um artigo interessante. Isso ajuda?

Yuval
fonte