私はスプレッドシートを持っています。そこで、人々はプロジェクトの更新を入力し、次に更新の日付を入力できます。何が起こっているのかというと、人々はノートの日付を忘れてしまっているということです。日付セルに現在/エントリの日付を自動入力させる方法はありますか?
If関数がそれを行うと想定していますか?
このイベントマクロは日付を列に配置します[〜#〜] b [〜#〜]列に値が入力されている場合A。マクロはワークシートのコード領域にインストールする必要があります。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range, B As Range, Inte As Range, r As Range
Set A = Range("A:A")
Set Inte = Intersect(A, Target)
If Inte Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each r In Inte
r.Offset(0, 1).Value = Date
Next r
Application.EnableEvents = True
End Sub
これはワークシートコードであるため、インストールが簡単で、自動で使用できます。
懸念がある場合は、まずトライアルワークシートで試してください。
ブックを保存すると、マクロも一緒に保存されます。 2003年以降のバージョンのExcelを使用している場合は、ファイルを.xlsxではなく.xlsmとして保存する必要があります。
マクロを削除するには:
マクロ全般の詳細については、以下を参照してください。
http://www.mvps.org/dmcritchie/Excel/getstarted.htm
そして
http://msdn.Microsoft.com/en-us/library/ee814735(v = office.14).aspx
イベントマクロ(ワークシートコード)の詳細については、以下を参照してください。
http://www.mvps.org/dmcritchie/Excel/event.htm
これを機能させるにはマクロを有効にする必要があります!
別の列を使用するようにコードを変更します。
EDIT#1:
このバージョンは、列[〜#〜] b [〜#〜]に既に存在するマテリアルを上書きしません:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range, B As Range, Inte As Range, r As Range
Set A = Range("A:A")
Set Inte = Intersect(A, Target)
If Inte Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each r In Inte
If r.Offset(0, 1).Value = "" Then
r.Offset(0, 1).Value = Date
End If
Next r
Application.EnableEvents = True
End Sub
ZATの答えがうまくいきました... ";"を "、"に変更した後。
=IF(AND(D52<>"",D52<>0),NOW(),"")
「TODAY」の代わりに「NOW」を使用して、時刻を指定しました。
対応する入力セル(D13など)が空でなく0が入力されていない場合は、目的のセル(C13など)で次の数式を試して現在の日付を入力します。
=IF(AND(D13<>"";D13<>0);TODAY();"")
次に、この数式を後続のセルにコピーして、その列の数式を入力します(例:col C)
列AとBに日付と時刻を入力し、列Dにデータを入力
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range, B As Range, Inte As Range, r As Range
Set A = Range("D:D")
Set Inte = Intersect(A, Target)
If Inte Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each r In Inte
If r.Value > 0 Then
r.Offset(0, -3).Value = Date
r.Offset(0, -3).NumberFormat = "dd-mm-yyyy"
r.Offset(0, -2).Value = Time
r.Offset(0, -2).NumberFormat = "hh:mm:ss AM/PM"
Else
r.Offset(0, -3).Value = ""
r.Offset(0, -2).Value = ""
End If
Next r
Application.EnableEvents = True
End Sub