Исключение надстройки C # Excel, когда панель формул выбрана и обращается к Range.Value - PullRequest
1 голос
/ 02 февраля 2012

Я только начинаю работу с надстройкой Excel 2010 с VSTO, и меня быстро ошарашивает исключение, сгенерированное этим кодом:

public void DoIt()
{
      Excel.Range selectedRange = Application.Selection as Excel.Range;
      if (selectedRange == null)
      {
           System.Windows.Forms.MessageBox.Show("Nothing selected");
      }
      else if(selectedRange.Cells.Count > 0)
      {
           selectedRange[1, 1].Value = "=2+3"; // exception on this line.
          selectedRange[selectedRange.Rows.Count, selectedRange.Columns.Count].Value = "Birthday";
      }
}

Исключение можно воспроизвести, сначала щелкнув одну ячейку на листе, затем щелкнув строку формул, а затем запустите вышеуказанную функцию (я вызываю ее с помощью кнопки ленты).

Может ли кто-нибудь посоветовать, что происходит и как справиться с этим исключением? Спасибо тебе.

1 Ответ

2 голосов
/ 02 февраля 2012

Исключением является то, что вы не можете запустить код в режиме редактирования формул.Вы также не можете сделать несколько других вещей.Например, щелкните в строке формул и нажмите Ctrl-N, что обычно открывает новую книгу.Ничего не происходит.

Я думаю, вам нужно просто перехватить исключение и выйти из Sub, что будет имитировать обычную работу Excel.

В идеале вы бы хотели отключить кнопку, как и большинство Excelкнопки ленты находятся в режиме редактирования формул.Хотя я не знаю, возможно ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...