2016-05-24 4 views
0

Ich habe ein Arbeitsmappenobjekt, in dem ich Excel-Formeln in bestimmten Zellen verwende. Ich programmiere programmatisch den Wert für ProtectContents auf IWorksheet-Objekt, um den schreibgeschützten Modus für diese Zellen ein- und auszuschalten.Verwenden von ProtectContents auf IWorksheetin Spreadsheetgear

1.Wenn der Wert von ProtectContents auf true gesetzt ist, sehe ich, dass alle Zellen wie erwartet im schreibgeschützten Modus sind, aber die Zelle (die Excel-Formel verwenden) wird als #NAME angezeigt? es funktioniert in Spreadsheetgear?

2.Und wenn die ProtectContents auf false zurückgesetzt wird, sehe ich alle Zellen, die die Formel verwenden, immer noch als #NAME? aber sie sind wie erwartet editierbar. Aber warum werden diese Zellenwerte nicht ausgewertet?

Bitte beraten.

Danke für Ihre Hilfe.

Antwort

1

Es sollte keine Korrelation zwischen #NAME geben? Fehler und der Zustand des Arbeitsblattschutzes. #NAME? Fehler können aus einer Reihe von Gründen auftreten, aber ohne weitere Details zu Ihrem speziellen Fall ist es unmöglich zu sagen, warum Sie dies sehen.

Ein häufiger Grund, warum Sie dies in SpreadsheetGear (und ich vermute nicht in Excel selbst?) Sehen, ist, weil die Formeln in diesen problematischen Zellen entweder direkt oder indirekt von einer benutzerdefinierten Funktion (UDF) im VBA-Teil von Ihrem abhängen Arbeitsmappe, von einem externen XLL-Add-In, usw. SpreadsheetGear unterstützt nicht die Ausführung von UDFs über VBA oder XLLs, also würden solche Funktionen zu #NAME?

SpreadsheetGear unterstützt die Implementierung Ihrer eigenen benutzerdefinierten Funktionen in Ihrer .NET-Anwendung über die SpreadsheetGear.CustomFunctions. Function Klasse und ihre Evaluate (...) Methode. Wenn Sie feststellen, dass das Obige die Ursache ist, können Sie Ihre eigenen Function implementieren, um diese Zellen korrekt berechnen zu lassen. Ich würde Beispielcode zur Verfügung stellen, aber ich gehe in erster Linie auf ein Bein und erwähne dies als die zugrunde liegende Ursache. Aktualisieren Sie Ihre Frage mit mehr Details und ich kann meine bei Bedarf entsprechend aktualisieren.

Verwandte Themen