EXCEL中在一个单元格输入内容时在另一个单元格自动输入日期,并且日期不再改变

输入任意内容,比如:100
显示当天日期,比如今天:1月28日
到明天这个单元格不会改成1月29日
谢谢!

这个问题有3个办法
1、用today()函数 但要设置 迭代计算 由于和其他文件需要的设置不同 有些麻烦
2、用宏,Worksheet_Change事件
3、最简单的是在需要日期的单元格上按住ctrl再按;(即ctrl+;)
建议用后2种办法

附上代码 工具-》宏-》 vb编辑器-》双击左侧树型目录的sheet1,然后在右侧代码区复制一下内容。假设A列输入,B列显示日期
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer
Dim iCol As Integer
iRow = Target.Row
iCol = Target.Column
If iCol = 1 And Target.Offset(0, 1) = "" Then
Target.Offset(0, 1) = Date
End If
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-28
呵呵,我太清楚你的意思了,因为之前我也思考这个问题,不过已经解决,拿来与你分享(你的意思是想用一个单元格记录另一个单元格最后输入或修改数据的日期):用VBA实现
按Alt+F11,复制并粘贴下面代码进去(估计直接粘贴进去不能像下面一样工整,比如有空行等,要删除空行排成下面一样格式)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 4 And _
Target.Column = 2 Then
Application.EnableEvents = False
Cells(4, 3) = Now()
Application.EnableEvents = True
End If
End Sub
解释:第二行的=4”表示需要输入或修改的数据在表格第4行;第三行的“=2”表示需要输入或修改的数据在表格第2列——即B4。第五行的“4, 3”表示自动显示日期的单元格在第4行第3列——即C4(以上位置可根据你的需要自行修改:例如你希望需要输入数据在一个较大范围,可以把第二、三行代码改为
If Target.Row > 3 And Target.Row < 10 And _
Target.Column >= 1 And Target.Column <= 10 Then
其实还有一个非常简单的办法:就是在输入数据后,在需要显示日期的单元格按Ctrl+;(分号)就可以插入当前日期,但这个方法不是自动的,同时以后你修改数据也要按Ctrl+;否则不会自动更新追问

我的意思是想用一个单元格记录另一个单元格最“开始”输入数据的日期,以后都不变了

追答

那上面的方法也可以的呀!
你是说原来输入数据并显示当时日期后,即使以后去修改这个数据日期也不变吗?如果这样就只有建议你用Ctrl+;了

追问

对,就是这样,修改这个数据,日期也不变

第2个回答  2018-01-31
这个问题有3个办法
1、用today()函数 但要设置 迭代计算 由于和其他文件需要的设置不同 有些麻烦
2、用宏,Worksheet_Change事件
3、最简单的是在需要日期的单元格上按住ctrl再按;(即ctrl+;)
建议用后2种办法

附上代码 工具-》宏-》 vb编辑器-》双击左侧树型目录的sheet1,然后在右侧代码区复制一下内容。假设A列输入,B列显示日期
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer
Dim iCol As Integer
iRow = Target.Row
iCol = Target.Column
If iCol = 1 And Target.Offset(0, 1) = "" Then
Target.Offset(0, 1) = Date
End If
End Sub
第3个回答  2013-01-28
你最好说的具体点,输入内容?输入什么内容?另外单元格日期不变?那应该保持哪个日期?具体点,别人好回答。追问

输入任意内容,不要不为空,比如:100
保持输入时的当天日期,比如今天:1月28日
到明天这个单元格不会改成1月29日
谢谢!

第4个回答  2013-01-28
输入数据格式的问题吧,把单元格格式设置成文本看看
相似回答