問題タブ [excel-udf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
f# - Excel DNA UDF は未処理の値を入力として取得します
COM/PIA インターフェイスを介して Excel の動的な性質に対処できるように、F# でいくつかのヘルパー関数を作成しました。ただし、Excel-DNA UDF でこれらの関数を使用しようとすると、Excel-DNA が Excel から配列内の値を前処理しているため、期待どおりに機能しません。たとえばnull
、に変わりますExcelDna.Integration.ExcelEmpty
これは、null
. パターン マッチングにケースを追加することで、これを回避できます。
ただし、変換してから再度変換するのはもったいない気がします。Excel-DNA に UDF の範囲値の追加処理を行わないように指示し、COM/PIA インターフェイスと同等のものを提供する方法はありますか? すなわちRange.Value XlRangeValueDataType.xlRangeValueDefault
編集:
私は自分の引数を次のobj
ように宣言します:
excel - 数式でのExcelの範囲と引数の衝突
以下の式を使用して合計を計算しています。この式は、列「支払い済み」の下の同じ行に「はい」という文字列が書かれている値の合計のみを計算します。また、特定の背景色のセルを特定の範囲で検索し、指定した背景色のセルのみを含む範囲を返す独自の UDF も作成しました。
(セミコロンについて混乱している場合は、私のコンピューターの言語がスウェーデン語であるため、これが Excel で使用される標準のリスト区切り記号です。コンマに変更しようとしましたが、それは役に立ちませんでした)
問題は、この特定のケースでは、最初の「SelectRangeByColour」関数が$M$5:$M$7;$M$15のような範囲を返し、2 番目の関数がこの範囲を返すことです: $I$5:$I$7 ;$I$15 . ただし、セミコロンは範囲内の値を区切るためだけでなく、関数SUMIFのさまざまな引数を区切るためにも使用されるため、関数はあまりにも多くの引数を受け取り、#VALUE !を出力します。エラー。
これは、SUMIF関数が最終的に解析しようとするものです。
したがって、$M$5:$M$7をメイン領域、$M$15を条件、$I$5:$I$7をオプションの合計領域、最後に$I$15を存在しない追加の引数と見なします。 .
ただし、SUMIF関数で$M$5:$M$7;$M$15をメイン領域として、「はい」を条件として、最後に$I$5:$I$7;$I$15を合計領域として解析する必要があります。どうすればこれを達成できますか?
以下は、UDF「SelectRangeByColour」のコードです。何らかの形で役立つ場合があります。