2017-11-01 11 views
0

別のセルが「閉じた」場合にのみ、セルに日付を追加する必要があります。それに何か他のものがあるなら、私はそれを明確にする必要があります。セル内の日付を自動的に別のセルのテキストに基づいて追加する

私は、「開く」という2つのオプションしかないドロップダウンを使用しています&「閉鎖」。 「閉鎖」を選択すると、右側のセルに現在の日付を挿入します。

セルにどのコードが入っていても日付を追加できるVBAコードがいくつか見つかりましたが、わかりません。

私は次の作品も見つけましたが、それを1列下のすべてのセルに配置する必要があります。

=IF(AND(F2<>"",F2<>"Open"),TODAY(),"") 

これは、ここでは、セルに

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
Dim xRg As Range, xCell As Range 
On Error Resume Next 
If (Target.Count = 1) Then 
    If (Not Application.Intersect(Target, Me.Range("B:B")) Is Nothing) Then _ 
     Target.Offset(0, 1) = Date 
    Application.EnableEvents = False 
    Set xRg = Application.Intersect(Target.Dependents, Me.Range("B:B")) 
    If (Not xRg Is Nothing) Then 
     For Each xCell In xRg 
      xCell.Offset(0, -1) = Date 
     Next 
    End If 
    Application.EnableEvents = True 
End If 
End Sub 
+1

明日のTODAY()関数が今日の表示と異なることに気づいていますか? – Jeeped

+0

VBAを提供できますか? – Zac

+0

@ジープドド私はしなかった。だから、あなたが明日シートを開くとき、その日付が現在の日付に変わると言っていますか? – James

答えて

1

何であったかのデータに関係なく、日付を追加しないだろうどのようなコードでは、恒久的に日付を入れますかなり定型Worksheet_Changeです。

Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Intersect(Target, Range("F:F")) Is Nothing Then 
     On Error GoTo bm_Safe_Exit 
     Application.EnableEvents = False 
     Dim rw As Long, rng As Range 
     For Each rng In Intersect(Target, Range("F:F")) 
      Select Case LCase(rng.Value2) 
       Case "closed" 
        rng.Offset(0, 1) = Date 
        'optional date formatting 
        'rng.Offset(0, 1).numberformat = "dd-mmm-yyyy" 
       Case Else 
        rng.Offset(0, 1).ClearContents 
      End Select 
     Next rng 
    End If 

bm_Safe_Exit: 
    If CBool(Val(Err.Number)) Then _ 
     Debug.Print Err.Number & ": " & Err.Description 
    Application.EnableEvents = True 

End Sub 

これは、ワークシートのコードシート、ない標準モジュールに属します。それは、複数の削除、編集および/または追加に耐えなければならない。

+0

これは私の必要と同じように機能します。どうもありがとうございます!私は検索して検索して見つけられませんでした。 – James

+0

次回は、私の答えを見てください(LOL:D)。これは、私が返信した別の質問から来て(非常に小さな修正を加えて)。あなたが探している検索用語は* vba timestamp *です。 – Jeeped

+0

する!再度、感謝します。 – James