2017-02-17 2 views
-1

Я запускаю поток для автоматического сохранения файлов excel каждые 5 минут. Когда он будет сохранен, будет активирован файл сохранения (fileA). И в то же время я редактировал другой файл (fileB). Как сохранить файлA в фоновом режиме, когда я использую fileB? Вот мой C# код в теме:Как сохранить открытые файлы Excel в фоновом режиме каждые 5 минут?

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 в 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(); 

Или, поместите этот фрагмент кода VBA в модуль этой книги.

Private Sub Workbook_Open() 
Application.OnTime Now + TimeValue("00:05:00"), "SaveThis" 
End Sub 
Смежные вопросы