excel 自動輸入日期

2008-08-11 7:36 am
如果我在A1輸入資料, 我想B1立即自動幫我顯示出當日日期, 哪我應該怎樣做? 我究竟是在哪一個COLUMN輸入公式呢? BTW, 我是想整個COLUMN都有這個FUNCTION, THX.

回答 (3)

2008-08-12 6:52 pm
✔ 最佳答案
在 Excel 開「工具」>「巨集」>「Visual Basic 編輯器」
雙擊左邊「專案 - VBAProject」內你需要的工作表(在這例子用 Sheet1)
在「程式碼」視窗左邊選「Worksheet」右邊選「Change」
把程式碼貼在 Private Sub Worksheet_Change(ByVal Target As Range) 和 End Sub 中間
可以關閉「Visual Basic 編輯器」
再到「工具」>「巨集」>「安全性」
在安全性視窗的「安全性層級」設定為「中」級,如果設定為「高」級,EXCEL下次開啟開會停用這「巨集」。
以下紅色字是你要的程式碼,你要把 Sheet1 改回你在 Excel 內的工作表名稱。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Target.Value = "" Then
Worksheets("Sheet1").Cells(Target.Row, 2).Value = Target
Else
Worksheets("Sheet1").Cells(Target.Row, 2).Value = Now
End If

End If
End Sub

圖片參考:http://hk.geocities.com/tult010/knowledge/Alex.gif
2008-08-12 2:37 am
要用excel macro, 程式如下:
先解釋:
A欄 是日期, B欄 是DATA
我設定range為 1-10, 當輸入完data 後, 按 Ctrl Shift g, 如果B欄有資料, A欄就會有當日日期出現.
Ctrl Shift g 在巨集設定, 全部都可在巨集設定, 包括安全問題.




Sub Macro1()
'
' Macro1 Macro
' MS 在 11/8/2008 錄製的巨集
'
'
Dim i As Byte, area_a As String, area_b As String
For i = 1 To 10

area_a = "A" & i
area_b = "B" & i

If (Range(area_b) = "") Then


Else
If (Range(area_a) = "") Then
Range(area_a).Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If

End If
Next i
End Sub
參考: me
2008-08-11 5:58 pm
=IF(A1<>"", NOW(), "")
雖然可以在輸入A1時顯示現在的時間, 但此時間不能保留, 每次重新開啟 Excel 時都會改變。

要保留輸入或更改A1時的時間, 恐怕要用 Excel 的 Macro/VBA 才可以。


收錄日期: 2021-04-23 18:01:50
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20080810000051KK02914

檢視 Wayback Machine 備份