2017-02-17 58 views
-1

我運行一個線程,每5分鐘自動保存一次excel文件。當它保存時,保存文件(fileA)將被激活。同時,我正在編輯其他文件(fileB)。 當我使用fileB時,如何在後臺保存fileA? 這裏是我的C#代碼中的線程:如何每5分鐘在後臺保存打開的Excel文件?

while (true) 
{ 
    Thread.Sleep(AutoSaveTime); 
    if (isRunning) 
    { 
     try 
     { 
      Workbooks files = Globals.ThisAddIn.Application.Workbooks; 
      foreach (Workbook book in files) 
      { 
       if (book.Saved != true 
          && book != Globals.ThisAddIn.Application.ActiveWorkbook) 
       { 
        book.Save(); 
       } 
      } 
      Globals.ThisAddIn.Application.ActiveWorkbook.Save(); 
     } 
     catch (Exception) 
     { 
     } 
    } 
} 
+1

只是好奇,但爲什麼不乾脆[更改自動保存時間(https://support.office.com/en-us/article/Help-protect-your-files-in-case-of- a-crash-551c29b1-6a4b-4415-a3ff-a80415b92f99)在辦公室? – BruceWayne

+0

謝謝你的回答! AutoRecover in Office對於我的客戶來說不夠簡單。他們只需要AutoSave功能... –

回答

0

試試這個。或者,把這段VBA代碼放到ThisWorkbook Module中。

Private Sub Workbook_Open() 
Application.OnTime Now + TimeValue("00:05:00"), "SaveThis" 
End Sub