ComException при попытке удалить лист из файла Excel в C#

Я сталкиваюсь со странной проблемой, для которой я не могу найти решение. Я пытаюсь удалить любой рабочий лист в книге, которая содержит определенное имя рабочего листа, и я продолжаю получать это исключение: «не удается получить свойство Delete класса рабочего листа» я могу использовать класс рабочего листа в других местах, но когда я пытаюсь использовать метод Delete(); или даже тот, который задает видимость указанного листа, я получаю то же самое. Любая помощь О почему была бы оценена!

Microsoft.Office.Interop.Excel.Sheets TestWorksheets = TestBook.Worksheets;
if (TestWorksheets.Count > NumberofsheetsIWantToKeep)
{
   int WorkSheetCounter = TestWorksheets.Count;
   while (WorkSheetCounter > NumberofsheetsIWantToKeep)
   {
      if(TestWorksheets[WorkSheetCounter].Name.Contains("blah"))
      {
        TestWorksheets[WorkSheetCounter].Delete();
      }
      WorkSheetCounter--;
   }
}

2 ответа

  1. оказывается, мне пришлось активировать книгу и лист, прежде чем я мог удалить его. Я чувствую себя глупо и извиняюсь за это!

  2. используйте код ниже вместо прямого удаления. Активация книги и листа.

       Microsoft.Office.Interop.Excel.Workbook book = TestBook;
       book.Activate();
       TestWorksheets[WorkSheetCounter].Activate();
       TestWorksheets[WorkSheetCounter].Delete();