我有一個電子表格,用戶可以在其中輸入項目更新,然後輸入更新日期。發生的事情是人們忘記約會他們的筆記。有沒有辦法讓日期單元格自動輸入當前/日期輸入?當用戶在相鄰單元格中輸入信息時自動填充日期單元格
我假設if函數會這樣做嗎?
我有一個電子表格,用戶可以在其中輸入項目更新,然後輸入更新日期。發生的事情是人們忘記約會他們的筆記。有沒有辦法讓日期單元格自動輸入當前/日期輸入?當用戶在相鄰單元格中輸入信息時自動填充日期單元格
我假設if函數會這樣做嗎?
這事件宏將放置在列乙日期如果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
因爲它是工作表代碼,它很容易安裝和自動使用:
如果您有任何問題,首先嚐試在一個審判工作。
如果保存工作簿,宏將與其一起保存。 如果您正在使用一個版本的Excel更高然後2003,你必須保存 該文件作爲.XLSM而非的.xlsx
要刪除宏:
要了解更多關於一般的宏,請參閱:
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:
此版本將不會覆蓋材料已經存在於柱乙:
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
是否可以將代碼修改爲只填寫日期,如果在B列中沒有填寫日期(或任何值)?我嘗試添加一個IF和使用偏移量,但是我無法使它工作..你能幫助我嗎? - [從另一個答案通過sofie](http://stackoverflow.com/a/33937777/4099593) – 2015-11-26 11:44:14
@BhargavRao ................是....... ....在幾個小時內 – 2015-11-26 11:47:08
@BhargavRao看我的**編輯#1 ** – 2016-01-02 16:21:05
嘗試此公式中的期望的細胞(例如C13),以填充當前日期當相應的輸入單元(如D13)不爲空且未填充0時:
=IF(AND(D13<>"";D13<>0);TODAY();"")
然後,您可以將此公式複製到後續單元格以填寫該列的公式(例如col C)
ZAT的答案對我有效......在將「;」更改爲「,」之後。
=IF(AND(D52<>"",D52<>0),NOW(),"")
我用「NOW」而不是「TODAY」來給我一天的時間。
列列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
它將輸入日期&時間A & b將數據錄入。但它將如何取決於工作表的現有設計。 – Fratyx 2014-10-16 18:35:22