2008-09-09 5 views
3

Я пытаюсь использовать метод SpecialCells в проекте VSTO с использованием C# против рамки 3.5 и Excel2007.SpecialCells в VSTO

Вот мой код:

Excel.Worksheet myWs = (Excel.Worksheet)ModelWb.Worksheets[1]; 

Range myRange = myWs.get_Range("A7", "A800"); 

//Range rAccounts = myRange.SpecialCells(XlCellType.xlCellTypeConstants, XlSpecialCellsValue.xlTextValues); 

Range rAccounts = myWs.Cells.SpecialCells(XlCellType.xlCellTypeConstants, XlSpecialCellsValue.xlTextValues); 

Когда я запускаю это, он бросает исключение ...

System.Exception._COMPlusExceptionCode with a value of -532459699 

Обратите внимание, что я получаю такое же исключение, если я включаю (раскомментируйте один и комментарий другое) вышеуказанная строка диапазона rAccounts.

+0

Если вы видите класс ComPlus исключения это ошибка HResult бурлит от слоя (-взаимодействия т.е. в данном случае с интерфейсом автоматизации - Excel.12 API). то есть вряд ли будет непосредственно результатом синтаксической ошибки или логической ошибки. так как в этом случае разработчик использовал код для выполнения неподдерживаемой операции в процессе Excel. Запуск того же кода в VBA быстро раскрыл бы проблему (как шаг устранения неполадок). – 2013-01-08 02:57:53

ответ

0

Я понял, что ... лист был защищен!

myWs.Unprotect(Properties.Settings.Default.PasswordSheet); 

исправляет его ... для тех, кто играет дома ... не забудьте защитить лист, когда закончите.

myWs.Protect(Properties.Settings.Default.PasswordSheet, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);