如何刷新以只读模式在Excel中打开的文档?


8

我有一个存储在SharePoint Server上的Excel文档,该文档始终以只读模式在计算机上打开,因为我需要引用它。

每隔一段时间,为了获得最新的更改,我必须关闭文件并再次重新加载。Excel 2007中是否有任何选项可以让我简单地将以只读模式打开的文档刷新为服务器上的最新版本?

更好的是,有没有一种方法可以动态地完成此操作,而无需我进行刷新?


我只是在尝试相同的事情-看起来答案仍然是“否”,Excel没有F5样式刷新。我还发现不可能从Excel最近使用的列表中以只读方式打开文件(您必须先进入文件浏览器才能执行此操作)...而且您无法将当前打开的电子表格设为只读...而且Excel允许您将文本输入到只读电子表格中。
比尔K

Answers:


1

Yuval的解决方案可能就足够了,但前提是更改仅限于单元格内容。查询者未指出是否是这种情况。尽管如此:如果您要进行的更改是在工作簿中添加(甚至删除)工作表,该怎么办?

某种脆弱而令人讨厌的解决方案:将宏存储在隐藏的PERSONAL.XLS(B)中,以执行定期(通过重新计划自身)工作簿的关闭并重新打开。PERSONAL.XLS(B)应该位于%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

当然,可以将以上子参数设置为参数和/或可以将其附加到自定义工具栏按钮等上。由于工作簿保存会保存活动工作表,活动单元格等状态信息,因此您可能还需要添加几行来保存首选活动工作表名称,并在每次重新打开后重新激活它。

参考文献:

http://office.microsoft.com/zh-CN/excel-help/run-a-macro-HP010342865.aspx http://msdn.microsoft.com/zh-CN/library/office/ff196165(v=office .14).aspx

尽管我没有审核所有内容,但是如果您还没有听说过PERSONAL.XLS(B),这似乎是非常有用的介绍:http : //www.rondebruin.nl/win/personal.htm


0

这可能会有所帮助:

工作簿作者可以通过选择“连接属性”对话框中的“打开文件时刷新数据”复选框,来创建打开工作簿时自动刷新外部数据的工作簿。

这是我得到的。这是一篇有趣的文章。这有帮助吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.