私は、データが最初にセルCに入力されたときに自動的にタイムスタンプをセルDに読み込むログの作成に取り組んでいます。残念ながら私は壁に当たっています。私は、Cell Cにデータを入力するとExcel VBA Static Timestamp in Worksheet_Changeイベント
、私はセルDにタイムスタンプを取得することができるが、私は再びセルCへの変更、タイムスタンプの更新を行います。
セルCが空白の場合、タイムスタンプがセルD内でのみ変更されるようにする必要があります。
すでにデータがセルCに入力されていてタイムスタンプが既にセルDにロードされていて、セルCの内容を変更する必要がある場合、タイムスタンプのセルDを変更しないようにします。
希望があります。 VBAコードは次のとおりです。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim rCell As Range
Dim rChange As Range
On Error GoTo ErrHandler
Set rChange = Intersect(Target, Range("C:C"))
If Not rChange Is Nothing Then
Application.EnableEvents = False
For Each rCell In rChange
If rCell > "" Then
With rCell.Offset(0, 1)
.Value = Now
.NumberFormat = "hh:mm:ss AM/PM mm/dd/yyyy"
End With
Else
rCell.Offset(0, 1).ClearContents
End If
Next
End If
ExitHandler:
Set rCell = Nothing
Set rChange = Nothing
Application.EnableEvents = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
ご了承ください。
現在のコードは、Dのタイムスタンプを削除する条件を示しています(ただし、thisdが発生したときのロジックは間違っています)。発生する可能性のある各条件の下で、あなたが何をしたいのかを詳述してください。 1.列Dのタイムスタンプと列Cの値はありません。2.列Dのタイムスタンプ、列Cの値はありません。3.列Dまたは列Cの値はありません。4.列CとDの両方の値。 – Jeeped
Hi Jeeped、もう少しやろうとしていることを説明してみましょう。私は、停止の呼び出しを実行するためのロギングテンプレートを作成しています。列Cの偶数詳細がタイトルとなり、最初は空白になります。休止中に何か注目すべきことが起こると、チームメンバーがこれをC列に入力します。誰かがC列の空白セルにデータを入力すると、D列にタイムスタンプが表示されます。列Cの項目は、列Dのタイムスタンプを更新しないようにします。列Cのすべてのデータを削除すると、タイムスタンプが消えます。 –
上記の条件にお答えします: 1.発生しないでください。 Cにデータがある場合、Dはタイムスタンプを設定します。 2.発生しないでください。タイムスタンプは、データがCに入力されたときにのみ表示されます。 3.両方の列が空白の場合 4.データが列Cに表示され、タイムスタンプが列Dに表示されます。 –