VBA實現輸入金額得到輸入時間
發表于:2007-07-14來源:作者:點擊數:
標簽:
有一位網友問我,他遇到了一個問題,就是在每次輸入一個單元格的時候就自動讓它在鄰近的單元格中,輸入當前的輸入日期及時間,(精確到秒如下表所示,只用我輸入金額立即在相鄰的修改日期單元格內,顯示當期的時間?。?為了解決這個問題我,選用了EXCEL97中
有一位網友問我,他遇到了一個問題,就是在每次輸入一個單元格的時候就自動讓它在鄰近的單元格中,輸入當前的輸入日期及時間,(精確到"秒"如下表所示,只用我輸入"金額"立即在相鄰的"修改日期"單元格內,顯示當期的時間?。?
為了解決這個問題我,選用了EXCEL97中的事件,就是如果使用Private Sub Worksheet_Change(ByVal Target As Range)事件,這個事件就是在WORKSHEET,如果發生改變以后就讓它去執行如下代碼!
Private Sub Worksheet_Change(ByVal Target As Range)
'Designed by liuzheng
'http://grwy.online.ha.cn/vba_excel97/
my = Target.Column
myadd = Target.Address
With Range(myadd).Offset(0, 1)
If Range(myadd).Address = "$A$1" Then Exit Sub
Application.EnableEvents = False
If my = 1 Then
If Target <> "" Then
.NumberFormatLocal = "@"
.Value = Now
Else
If b <> vbCancel Then .Value = ""
End If
Else
Application.EnableEvents = True
Exit Sub
End If
End With
Application.EnableEvents = True
End Sub
在代碼中,我使用了"NOW"函數,這個函數是EXCEL中的內置函數,它的意思就是得出當前系統的時鐘時間,如:1/3/2000 11:22:35 AM,但是直接在單元格中輸入NOW的值,它只顯示:1/3/2000 11:22 AM不能精確到秒,如何使它精確到秒呢?我采用了如下語句".NumberFormatLocal = "@"", 讓NOW函數顯示為文本!怎么樣很簡單吧!本例中如果我們在單元格中輸入"=NOW()"你會看到單元格中將顯示為:1/3/2000 11:22 AM,但如果下一次您打開工作表之后,所有帶有"=NOW()"的單元格將都改為您打開工作簿的時間,所以只能將值付給單元格,而不能只輸入NOW函數公式!
而ENABLEEVENTS屬性是使得,指定對象能觸發事件,它是個 Boolean 類型。
希望上述代碼能夠使您舉一反三,方便自己的工作為準!編寫
VBA程序以方便工作而準,如果為了編程而編程就失去了編程的意義!
最后我也希望各位VBA高手,寫出更多更好的代碼,以便我們的工作!
原文轉自:http://www.anti-gravitydesign.com