2008-09-09 11 views
3

Ich versuche, die SpecialCells-Methode in einem VSTO-Projekt zu verwenden, das C# mit dem 3.5 Framework und Excel2007 verwendet.SpecialCells in VSTO

Hier ist mein Code:

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); 

Als ich dies ausführen, wirft es eine Ausnahme ...

System.Exception._COMPlusExceptionCode with a value of -532459699 

Bitte beachte, dass ich die gleiche Ausnahme, wenn ich (uncomment umschalten und kommentieren die andere) die obige Range rAccounts line.

+0

Wenn Sie eine ComPlus Klasse Ausnahme sehen ist es ein HResult Fehler aus der Interop-Schicht sprudelt (das heißt in diesem Fall von der Automatisierungsschnittstelle - Excel.12 API). d.h. es ist unwahrscheinlich, dass es direkt das Ergebnis eines Syntaxfehlers oder eines Logikfehlers ist. In diesem Fall verwendete der Entwickler den Code, um eine nicht unterstützte Operation im Excel-Prozess durchzuführen. Das Ausführen des gleichen Codes in VBA hätte das Problem schnell aufgedeckt (als Schritt zur Fehlerbehebung). –

Antwort

0

Ich fand es heraus ... das Arbeitsblatt wurde geschützt!

behebt es ... für diejenigen, die zu Hause spielen ... vergessen Sie nicht, das Blatt zu schützen, wenn Sie fertig sind.

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);