[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAでifの結果をワークシート関数の戻り値にしたい』(まきりん)
VBAを使っていて、初心者なのですが (先程、やっとこちらのサイトで色々お世話になった結果なんとか 使える状態になりました(^_^;))
ところで、質問ですが if条件Then 関数の名前=「ワークシート関数」(今回は、datedif) という風にしたいのですが、どのように記述すればOKでしょうか? ちなみに、私が書いたのは Elseif T=""Then days=apprication.WorksheetFunction.datedif(B,K,"d")
です。何かおかしい所ありますか? 結果は、#VALUE!が表示されます。 他の条件式の結果は、文字列とかで正常に表示されます。 スイマセン、INAさん、おいぼれ弥太郎さんに先程少しお伺いしたのですが 上記、で上手く理解しきれていないのでしょうか? アドバイス、お願いします。(まきりん)
前にもどこかに書いたような気がしますが、VBAでDATEDIFは使えません VBAで使えるワークシート関数はVBAのヘルプで[Visual Basic で使用できるワークシート関数一覧] を参照してください(ISBLANKも使えないと思います)
Sub Test() Dim Days Days = DateDiff("d", Range("A1"), Range("A2")) MsgBox Days End Sub
VBAには DateDiff 関数があるのでそれを使用してみました (りな)
よく読んだら関数でしたね
Function days(b, k) days = DateDiff("d", b, k) End Function
あまり変わりませんが一応訂正しときます (りな)
りなさん、ありがとうございます。 無事、希望通りの値が返るようになりました!! 今後の参考までに、教えてください。 Datediffは、ワークシート関数ではなく、あくまでもVBA用の関数なので apprication.WorksheetFunctionを頭に付けなくてOKって事ですよね。 もし、仮にDatedifがVBAで使える”ワークシート関数”であれば 最初の days=apprication.WorksheetFunction.datedif(B,K,"d") で、使い方としては、OKでしょうか? あっそうか、使える関数に変えて試してみればいいのか・・・。スイマセン。 今後とも、宜しくお願いします。(まきりん)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.