2017-10-27 13 views
0

こんにちは、エクセルVBA 2003 -

キーワードに基づいてautopopulating日は、私はこのフォーラムに新たなんだとVBAはあまりにも非常に基本を知っています。私はどこでも検索しましたが、正しいコードを見つけることができません。

私は基本的に自分の仕事を扱うスプレッドシートを持っていて、それは "開かれた" & "閉鎖されている"と選択された日付を入力する必要があります。

Column B = "Open" & "Closed" - this is done in a list format 
Column D = Date opened which needs to relate to "Open" from Column B 
Column J - Date closed which needs to relate to "Closed" from Column B 

これは私が前の仕事を持っているB、DおよびJ.内のすべての列を申請する必要がありますので、それはそれは次の空白のセルで始まり持つことは可能でしょうか?

私は、次のコードを使用しています

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim A As Range, D As Range, Inte As Range, r As Range 
    Set A = Range("B:B") 
    Set Inte = Intersect(A, Target) 
    If Inte Is Nothing Then Exit Sub 
    Application.EnableEvents = False 
     For Each r In Inte 
      r.Offset(0, 2).Value = Date 
     Next r 
    Application.EnableEvents = True 

End Sub 
にのみ、列Dに日付を入れて

ありがとう列Bには何も入力することによってトリガーされる

ジョニー

+0

これまでに試したコードをすべてお知らせください。 StackOverflowは協力し、特定のコーディングの問題を解決するためにセットアップされています。それはコード・フォー・ユー・サービスではありません。ご使用にならない場合は、Excelの* Developer *タブにある* Macro Recorder *を試してみてください。あなたのコメントに特化して、ほとんどのコードは存在し、そこにありますが、コードをあなたのデータセットに適合させるためには、一般にあなたの努力が必要です。 – Cyril

+0

こんにちはジョニー、私はこれは単純な "if"の式で行うことができると理解しているので、少し詳細を説明できますか?コード化の必要はありません。 –

+0

また、スプレッドシートの用語を使用するときは具体的にしてください。列B、D、およびJは、すべての行に適用されます。行B、行D、行Jと書いておきます。一貫性を持たせるためにあなたの投稿を更新することができれば幸いです。 – Cyril

答えて

0

セルb2に式= IF(B2 = "Open"、 "Date"、 "")を入力し、最後までドラッグします。セルj2に式= IF(B3 = "Closed"、TODAY()、 "")を入力し、最後までドラッグします。あなたの声明は、 "列Bが開くと言って、私は列Dに記入された日付が必要です"。ここであなたが言及している日付は?これがあなたが必要とするものであれば教えてください

+0

TODAY()を入れると危険です。入力された日付。特定のイベントに基づいて再計算される可能性のある関数とは対照的に、ハードコーディングされた値がセルに返されることが望ましいように思えます。チェックに値する – QHarr