我想更新日期時間單元格當值被輸入到一位如此,Excel中OnChange事件
我怎樣才能B列的值更改爲日期,時間,當值進入A?
是否有類似if-then-else?
我嘗試了條件格式但沒有成功。
有人可以發佈一個工作的例子嗎?
謝謝
我想更新日期時間單元格當值被輸入到一位如此,Excel中OnChange事件
我怎樣才能B列的值更改爲日期,時間,當值進入A?
是否有類似if-then-else?
我嘗試了條件格式但沒有成功。
有人可以發佈一個工作的例子嗎?
謝謝
嘗試使用
=IF(A3<>"",IF(B3="",NOW(),B3),"")
值將在A列和時間戳列B.此外,你必須啓用的選項迭代計算。
請注意,這隻會在A列中首次輸入一個值時生成一個時間戳。要使用此方法,而不是通常編輯單元格的值,則必須將其刪除並重新輸入一個新的價值。
我擔心這只是一種解決方法,而不是一個完整的解決方案。如果我找到更方便的東西,我會更新它。
你可以自己嘗試過,不是嗎?
在我看來,最難的部分是想想Change
事件。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Application.EnableEvents = False
ActiveSheet.Cells(Target.Row, 2).Value = Format(Now, "h:mm")
Application.EnableEvents = True
End Sub
您可以將Format
內容更改爲任何您需要的內容。
公式= NOW()是volitile,這意味着只要工作簿中的任何內容發生更改,就會重新計算,因此如果使用它,則應該沒有問題。
單獨說明,您可以創建UDF以及在代碼中簡單添加Application.Volitile
。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'when entering data in a cell in Col A
On Error GoTo enditall
Application.EnableEvents = False
If Target.Cells.Column = 1 Then
n = Target.Row
If Me.Range("A" & n).Value <> "" Then
Me.Range("B" & n).Value = Format(Now, "hh:mm:ss")
End If
End If
enditall:
Application.EnableEvents = True
End Sub
如何使用?
右鍵單擊工作表選項卡和「查看代碼」。
將代碼粘貼到該表單模塊中。
Alt + q返回到Excel窗口。
Click here用於樣本文件...
下面是處理的情況下的替代事件過程,其中用戶的更新在一個時間多於一個的小區(即,漿料的細胞塊)。
當使用事件過程Worksheet_Change
時,必須在開始時關閉事件處理,並確保它始終在最後重新打開。
請注意,我故意省略了時間戳的格式,因爲先前的示例已從日期中刪除。如果該列尚未格式化並且需要格式化,我建議您添加一行代碼以設置.NumberFormat
屬性。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Then
Target.Resize(ColumnSize:=1).Offset(ColumnOffset:=1).Value = Now
End If
Application.EnableEvents = True
End Sub
跟蹤A列變化的情況很簡單;當用戶粘貼單元格塊時,其他列可能會有點棘手。例如,如果要捕獲對D列的更改,則代碼需要處理在單元格C2:D2被粘貼時的情況,在這種情況下Target.Column
= 3.(使用Intersect
方法或同時查看Target.Columns.Count
屬性
你好,是的,我絕對可以,我是一個程序員10年,但真的不知道使用excel,也不是我最大的數學其實:)我甚至不知道我要在哪裏添加此代碼但我會嘗試。謝謝:) – Herr 2011-12-13 20:43:51
對不起,我可能誤解了你的標題......我所展示的是[事件過程](http://www.cpearson.com/excel/Events.aspx),你需要添加這個代碼到工作表:右鍵單擊該選項卡並單擊編輯代碼並複製粘貼我的答案中的代碼(看看上面的鏈接也可以看到我的評論) – JMax 2011-12-13 20:48:35
+1 - 但建議您將您的EnableEvents =在你的Intersect測試後第3行爲False :) – brettdj 2011-12-14 11:32:45