2017-02-17 5 views
-1

5 분마다 파일을 자동 저장하는 쓰레드를 실행합니다. 저장하면 저장 파일 (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) Office에 있습니까? – BruceWayne

+0

답변 해 주셔서 감사합니다. Office에서의 자동 복구는 고객에게 충분히 간단하지 않습니다. 그들은 단지 자동 저장 기능이 필요합니다 ... –

답변

0

시도해보십시오.

wbook.SaveAs("c:\\temp\\blah", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, 
      false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, 
      Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 
wbook.Close(); 

또는 ThisWorkbook Module에이 코드 조각을 넣으십시오.

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