2017-04-18 10 views
-6

私は新しくvba for fomulasのコーディングについての私の問題を助けてください。 = IFERROR(AP24728 < 0、(B24728、AQ24728、 'N:#Abe \レポートPU 05 Des 2016.xlsx休日'!$ A $ 2:$ A $ 69)) - 1)Excel式をvbaで使用する方法

ありがとうございました

+2

詳細をお知らせください。現在あなたの質問には、VBAに関する問題があり、Excelの式が表示されます。あなたは何をしようとしているのですか?何が効いていないのですか? – YowE3K

+1

私はこの式をVBAに入れたいと思います。 ありがとう – LhSandi

答えて

0

VBAでExcel式を使用するには、Evaluate @ YowE3Kの例のようにファンクション文字列を使用するか、WorksheetFunctionメソッドを使用してほとんどのExcel関数を実行できます。 Evaluateメソッドは、あなたの例が示唆しているような固定式を行い、VBAで結果を返す場合に最も適しています。WorksheetFunctionメソッドでは、VB言語で引数を指定できます(私の意見では、しかし、あなたがこれを何度もやりたいと思うならば、速度の面ではトレードオフがあります。例えば、ある範囲のセルを繰り返し処理するなど)。IfErrorに別の関数が組み込まれているので、巣IfError 1内の別のWorksheetFunction、以下のように:

WorksheetFunction.IfError([expression], WorksheetFunction.NetworkDays([date from], [date to], [holidays])) 

しかし、あなたが何をしたいあなたのポストから明らかではありません。ここで重要なことは、全体として何をしようとしているのか、つまり達成しようとしている「大きな写真」は何かについて、さらに詳しい情報を提供することです。 1つのセルで値をテストしたいだけですか?これは、複数の細胞に対して繰り返す必要があるものでしょうか? VBAでなぜこれを行う必要がありますか?ワークシートの数式をはるかに簡単に使用できるのはなぜですか?

2

「あなたは何をしようとしていますか? 「私はVBAには、この式を載せていきたいと思います」と、いくつかのサンプルコードは次のようになります。

Dim result As Variant 
result = Evaluate("IFERROR(AP24728<0,(NETWORKDAYS(B24728,AQ24728,'N:#Abe\Report PU\Desember[Report PU 05 Des 2016.xlsx]Holidays'!$A$2:$A$69))-1)") 

、あなたの質問に追加の詳細を提供する場合、私はこの答えに展開することができ、または他の誰かがはるかに思い付くこともっといい方法。

関連する問題