Я занимаюсь разработкой надстройки для Excel и вижу некоторые ошибки, которые появляются, когда люди запускают Excel, открывая книгу.Если они запускают Excel, а затем открывают книгу, все в порядке, но в остальном есть проблемы.
Проблема в том, что я не знаю, как это отладить, так как я не могу запустить отладчик сАргумент команды Excel (насколько я знаю).
Я добавлю некоторые детали в соответствии с просьбой:
Внутри ThisAddIn.cs у меня есть 2 блока кода, которые вызывают у меня проблемы.
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
try
{
if (isStarted) return;
var xl = this.Application;
xl.WorkbookOpen += WorkbookOpened;
xl.SheetActivate += Workbook_SheetActivate;
var workbook = Application.ActiveWorkbook;
WorkbookOpened(workbook);
isStarted = true;
}
catch (Exception ex)
{
logger.LogIt($"Error 01 - {ex.Message}");
}
}
и:
private void WorkbookOpened(Excel.Workbook workbook)
{
try
{
if (!isStarted)
{
var xl = this.Application;
xl.WorkbookOpen += WorkbookOpened;
xl.SheetActivate += Workbook_SheetActivate;
isStarted = true;
}
int key = Application.Hwnd;
dynamic srVers = null;
if (workbook.CustomDocumentProperties.Count == 0) return;
var srType = workbook.CustomDocumentProperties("InternalDocType");
try
{
srVers = workbook.CustomDocumentProperties("Version");
}
catch (Exception)
{
srVers = null;
}
if (srType.Value != "OurType") return;
Globals.Ribbons.prRibbon.WorkbookOpened(workbook);
}
catch (Exception ex)
{
logger.LogIt($"Error 06 - {ex.Message}");
}
}
Когда кто-то запускает Excel и открывает рабочую книгу, ошибок нет.Однако, если кто-то открывает Excel, открывая книгу (дважды щелкнув в проводнике или щелкнув правой кнопкой мыши Excel и выбрав книгу), я получаю сообщение об ошибке 06, затем ошибка 01, оба с «Ссылка на объект не установлена на экземпляр объекта."
Есть предложения?