問題タブ [paramarray]

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.

0 投票する
1 に答える
132 参照

excel - ParamArray を使用したマクロの割り当て: 式が複雑すぎてオブジェクトに追加できない

数式が複雑すぎるメッセージ

ParamArray を使用して、定義されていない数の名前付き範囲に新しい行を挿入するマクロ (以下) があります。マクロに 5 ~ 6 個を超える引数を割り当てようとした場合を除いて、正常に動作します。というメッセージ ボックスが表示されます。 「数式が複雑すぎてオブジェクトに代入できません」(上の図を参照)

(以下の割り当て文字列を参照)

'InsertNewRow "ServiceCrewDay_EmployeeList", "SAP_SCD_InPool", "SAP_SCD_OutPool", "SAP_SCD_SecondaryIn", "SAP_SCD_SecondaryOut", "SAP_SCD_ORD","SAP_SCD_THF","SAP_SCD_LH", "SAP_SCD_LH"'

大きい:

マクロ自体は期待どおりに実行されますが、名前付き範囲を割り当てるだけで問題が発生します。これを行うより良い方法はありますか?

または、式が複雑すぎる方法を回避する方法はありますか? また、すべてのエンド ユーザーの PC または私の PC だけでそれを行う必要があり、設定が引き継がれる場合はありますか?

私が考えたことは、2つの名前付き範囲を取り込んで、次の範囲を取得することでした.前の範囲の行数でそれらをオフセットするだけなので、その場合Range2 = Sheets().Range("A1:A10")Range3 = Range2.Offset(Range2.Rows.Count,0)割り当て入力は、Range1 as string, Range2 as string, NumberOfExtraRanges as integer少なくとも2つの範囲が必要な理由であるだけで済みます.範囲 1 の後のすべての範囲は別のタブにあり、基本的にすべての給与情報時間などの生データ バージョンであるため、Range1_EmployeeList になる最初のタブにあります。

応答を待つ間、これで遊んでみます。

ティア

0 投票する
1 に答える
61 参照

excel - ParamArray を使用して組み込み関数に引数の可変数を渡す

いくつかの組み込み Excel 関数を組み合わせた VBA 関数を作成したいと考えています。各関数は、異なるサイズのセル範囲を 1 つ以上取ることができます [編集: SUM、COUNT、STDEV.P、AVERAGE、MIN など; ただし、これらのような不連続な範囲を取ることができる式で機能する方法を好むでしょう].

入力する範囲の数は柔軟にする必要があり、これらの引数はワークシートに直接入力されます。これは VBA の ParamArray を使用するのが最も簡単なはずですが、各セル範囲を組み込み関数に渡す方法がわかりません。これが私が試したことの簡単な例です:

これは、単一セルの引数では機能しますが、範囲では機能しません。たとえば、セルA1=1 とA2=2 の場合、"=Func1(A1,A2)" は 3 を=Func1(A1:A2)返しますが、#VALUE!

の各範囲をループすることを考えましたが、ループ中に組み込み関数Ranges()に引数を 1 つずつ入力する方法が思いつきません。SUM

ps - 実際には、同じ範囲のセットを持つ約 10 個の異なる関数 (合計だけでなく、そうでなければこれは些細なことです) を呼び出しています。 10 個の関数のそれぞれに入力します。