2

私はウェブで答えを探しましたが、私がやろうとしていることに関して何の助けも見つかりませんでした. 列 A のセルが変更されたときに、列 B の対応するセルに時刻が自動的に入力されるようにしたいのですが、列 C と D にも同じことが当てはまります。現在発生している問題である、時刻を更新したくありません。 . 以下は私が現在持っているコードです:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Then
    Target.Offset(, 1) = Time
ElseIf Target.Column = 3 Then
    Target.Offset(, 1) = Time
End If
Application.EnableEvents = True
End Sub

このコーディングは機能しますが、列 B と D の時刻が更新されます。これは望ましくありません。時刻の更新を停止するには何を追加できますか?

ありがとうございました<3

4

1 に答える 1

3

あなたの質問が正しく理解できれば、隣の列に時刻が表示されていない場合にのみ時刻を更新しますか? その場合、これはうまくいくはずです:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Column = 1 Or Target.Column = 3 Then
        If Target.Offset(, 1) = vbNullString Then Target.Offset(, 1) = Now()
    End If
    Application.EnableEvents = True
End Sub

これは Gary's Student's answer と一致していますが、条件を追加してコードを少し簡素化します。

于 2015-10-04T15:48:53.417 に答える