2016-05-24 10 views
0

私は特定のセルでExcel式を使用しているブックオブジェクトを持っています。 IWorksheetオブジェクトのProtectContentsの値をプログラムで設定して、これらのセルの読み取り専用モードをオンまたはオフにします。IWorksheetin SpreadsheetgearでのProtectContentsの使用

1. ProtectContentsの値がtrueに設定されていると、すべてのセルが期待通りに読み込み専用モードになっていますが、セル(Excel式を使用する)の値は#NAMEとして表示されます。それはスプレッドシートギアで動作しますか?

2. ProtectContentsをfalseに戻すと、式を使用するすべてのセルが#NAMEとして値を表示しますか?しかし、彼らは期待どおりに編集可能です。しかし、なぜそれらの細胞の値は評価されていないのだろうか?

お知らせください。

ありがとうございました。

答えて

1

#NAMEには何も関係がありませんか?エラーとワークシート保護の状態を示します。 #名?さまざまな理由でエラーが発生する可能性がありますが、特定のケースについての詳細がなければ、なぜこれを見ているのかは分かりません。

これらの問題のあるセルの数式は、直接または間接的にユーザー定義関数(UDF)のVBA部分に依存しているため、SpreadsheetGearでこの問題が発生することがあります。ブック、外部のXLLアドインなどSpreadsheetGearはVBAまたはXLLを介してUDFを実行することをサポートしていないので、#NAME?と評価されます。

SpreadsheetGearは、SpreadsheetGear.CustomFunctionsを使用して.NETアプリケーションで独自のカスタム関数を実装することをサポートしています。 FunctionクラスおよびそのEvaluate(...)メソッドです。上記が原因であることがわかった場合は、Functionを実装して、これらのセルを正しく計算できるようにすることができます。私はサンプルコードを提供するつもりですが、私は最初にこのことを根本的な原因として言及しています。より具体的なあなたの質問を更新し、私は必要に応じて鉱山を更新することができます。