2017-09-25 7 views
-1

Excel/VBAアプリケーションがあります。このアプリケーションは、提供された開始日と終了日に基づいてクエリを実行します。開始日と終了日は、Excelシート自体(フォームではありません)で指定します。 デフォルトの開始日を月の1日に、終了日を昨日の日付に設定する必要がありますが、ユーザーは日付を上書きできます。デフォルトの日付をEXCEL/VBAに設定する

数式を使用してデフォルトの開始日と終了日を設定できますが、上書きして別の日付を入力すると、その中に保存されている数式はなくなります。 この問題の対処方法を教えてください。

+0

は式と手動のエントリを上書きする「リセット」マクロをお持ちですか?あなたはどこに正確にこだわっていますか?コードはありますか? –

+0

@Mat、あなたのコメントを見ました!私はVBAの初心者です。リセットマクロを書く場所と、それをどのように起動するのかを教えてください。値を指定すると、ワークシート( "Sheet2")、範囲( "C3")、値= "" 終了場合 – SilverFish

答えて

1

私は通常、別の列またはセルを使用してこの問題を解決します。ユーザーのオーバーライドの優先度が高く、式のデフォルト値が低いIF式で出力を制御します。何かのように:

IF(UserOverride<>"", UserOverride, FormulaDefault)

EDIT:
あなたは、いくつかのボタン/ショートカットにこのコードを添付することができ

Public Sub resetDefaults() 
    ThisWorkbook.Sheets(1).Cells(5, 5).Formula = "=TODAY()-1" 
End Sub 
+0

Form_Loadのようなものがデフォルトの日付に設定できると思っています。これがVBAでどのように行われているかわかりません。 Private Sheet Worksheet_Activate() ワークシート( "Sheet2")。範囲( "C3")。値= "" Then \tワークシート( "Sheet2")。 ).Value = TODAY() - 1 終了の場合 End Sub – SilverFish

+0

Excel/VBAにForm_loadに相当するものはありますか? – SilverFish

+1

フォームを使用したくない場合は、なぜ 'Form_Load'に言及しますか? 「ブックが開くときにマクロを実行するにはどうすればよいですか」という意味ですか?あなたはその正確な質問をgoogleすることができ、10秒以内に答えを得ることができます。 –

関連する問題