ฉันจะรีเฟรชเอกสารที่ฉันเปิดใน Excel ในโหมดอ่านอย่างเดียวได้อย่างไร


8

ฉันมีเอกสาร Excel ที่เก็บไว้ใน SharePoint Server ซึ่งฉันมักจะเปิดในคอมพิวเตอร์ของฉันในโหมดอ่านอย่างเดียวเพราะฉันจำเป็นต้องอ้างอิง

บ่อยครั้งที่จะได้รับการเปลี่ยนแปลงล่าสุดฉันต้องปิดไฟล์และโหลดซ้ำอีกครั้ง มีตัวเลือกใดบ้างใน Excel 2007 ที่อนุญาตให้ฉันรีเฟรชเอกสารที่ฉันเปิดในโหมดอ่านอย่างเดียวเป็นเวอร์ชันล่าสุดบนเซิร์ฟเวอร์หรือไม่

ยังดีกว่ามีวิธีที่สามารถทำได้แบบไดนามิกโดยไม่ต้องกดรีเฟรช?


ฉันแค่พยายามทำสิ่งเดียวกัน - ดูเหมือนว่าคำตอบยังคงเป็น "ไม่" ไม่มีการรีเฟรชสไตล์ F5 สำหรับ Excel ฉันยังพบว่าเป็นไปไม่ได้ที่จะเปิดไฟล์จากรายการที่ใช้ล่าสุดของ Excel เป็นแบบอ่านอย่างเดียว (คุณต้องเข้าไปในเบราว์เซอร์ไฟล์ก่อนจึงจะสามารถทำได้) ... และคุณไม่สามารถทำให้สเปรดชีตที่เปิดอยู่อ่านได้อย่างเดียว ... และ Excel ช่วยให้คุณสามารถป้อนข้อความลงในสเปรดชีตแบบอ่านอย่างเดียว ... น่ารำคาญมาก
Bill K

คำตอบ:


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/en-us/excel-help/run-a-macro-HP010342865.aspx http://msdn.microsoft.com/en-us/library/office/ff196165(v=office 0.14) .aspx

แม้ว่าฉันจะไม่ได้พยายามอย่างเต็มที่ แต่ดูเหมือนว่าจะเป็นการแนะนำที่มีประโยชน์มากหากคุณไม่เคยได้ยิน PERSONAL.XLS (B): http://www.rondebruin.nl/win/personal.htm


0

สิ่งนี้อาจช่วย:

ผู้สร้างสมุดงานสามารถสร้างสมุดงานที่รีเฟรชข้อมูลภายนอกโดยอัตโนมัติเมื่อเปิดสมุดงานโดยเลือกกล่องกาเครื่องหมายรีเฟรชข้อมูลเมื่อเปิดไฟล์ในกล่องโต้ตอบคุณสมบัติการเชื่อมต่อ

นี่คือที่ฉันได้รับมัน มันเป็นบทความที่น่าสนใจ สิ่งนี้ช่วยได้ไหม?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.