У меня странная проблема, когда Excel ведет себя по-разному на моей машине для разработки и на машине для тестирования.
В моей надстройке я отключил ScreenUpdating в нескольких местах для длительных процессов. На моей машине это работает нормально. На тестовой машине Excel устанавливает ScreenUpdating = true
, как только я пишу в ячейку.
Следующий код демонстрирует проблему для меня.
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Microsoft.Office.Interop.Excel.Application excel = Globals.ThisAddIn.Application;
MessageBox.Show(excel.ScreenUpdating.ToString());
excel.ScreenUpdating = false;
MessageBox.Show(excel.ScreenUpdating.ToString());
Workbook workbook = Globals.ThisAddIn.Application.ActiveWorkbook;
Worksheet w = (Worksheet)workbook.Worksheets[1];
((Range)w.Cells[1, 1]).Value = "Test";
MessageBox.Show(excel.ScreenUpdating.ToString());
}
На моей машине открытие Excel дает три окна сообщений, в которых говорится:
«Правда», «Ложь», «Ложь».
На тестовой машине говорят
«Правда», «Ложь» и «Правда».
Я также прошел через удаленный отладчик и наблюдал, как свойство ScreenUpdating
изменяется сразу после установки значения ячейки. Кроме того, это не единственное, что сбрасывает ScreenUpdating
. Добавление или удаление рабочего листа или рабочей книги также сделает это.
Версия Excel в каждой системе одинакова (14.0.6112.5000 (32-разрядная версия)).
Что может быть причиной этого? Как я могу это исправить, чтобы Excel учитывал мои настройки?