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

2024-12-20 10:27:42
推荐回答(4个)
回答1:

这个问题有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

回答2:

呵呵,我太清楚你的意思了,因为之前我也思考这个问题,不过已经解决,拿来与你分享(你的意思是想用一个单元格记录另一个单元格最后输入或修改数据的日期):用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+;否则不会自动更新

回答3:

你最好说的具体点,输入内容?输入什么内容?另外单元格日期不变?那应该保持哪个日期?具体点,别人好回答。

回答4:

输入数据格式的问题吧,把单元格格式设置成文本看看