excel2007在一个单元格内输入一个数字,另一个单元格自动显示日期,最好是到秒...

excel2007在一个单元格内输入一个数字,另一个单元格自动显示日期,最好是到秒...另外,当输入数字的单元格数据变化后,另一个单元格内的时间能够自动更新到最终一次修改的时间...最好有详细的函数程式或者VB编辑语言。谢谢!先上50分,解决后会追加分数...

假设A列输入数据,B列显示日期及时间。

步骤1:右击工作表标签>>>查看代码(或按快捷键Alt+F11),进入VBE编辑器。

步骤2:粘贴下面的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    Rem 如果同时输入多个单元格内容就退出过程
    If Target.Count > 1 Then Exit Sub
    Rem 如果改变的单元格列号大于1,既不是A列,就退出过程
    If Target.Column > 1 Then Exit Sub
    Rem 关闭事件触发程序,防止触发连锁事件
    Application.EnableEvents = False
    Rem B列输入日期及时间
    Target.Offset(0, 1) = Now
    Rem 恢复事件触发程序
    Application.EnableEvents = True
End Sub

步骤3:单击右上角的关闭按钮,关闭VBE编辑。

现在,A列输入数据,B列自动显示当时的日期和时间,如下图:

知识扩展:

1、在VBA中,Now表示现在(日期及时间),Date表示日期,Time表示当前时间。.

2、代码中前面是Rem的语句,表示这是个注释的语句,也可以不加入,对于初学者来说,添加注释是一个好习惯。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-26
输入在A列,B列写时间:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 1 And Target.Column = 1 Then
Target.Offset(, 1) = Now()
End If
End Sub追问

很抱歉我测试了几次都没有办法成功...不知道什么原因?

追答

开启宏,将上面代码复制进页面的vbs,就可以使用了。这是个触发宏。实在不会的话可以把你的表发至[email protected]

第2个回答  2014-01-26
函数now()可以解决

输入Now()函数的那个单元个的格式设置为yyyy/m/d h:mm:ss追问

最好有详细的函数程式或者VB编辑语言。谢谢...

追答

你可以在单元格A1里输入 =now()
然后单元格A1右键选择单元格格式、设置为yyyy/m/d h:mm:ss
然后其他单元格一变动A1里的时间也是跟着变动的。

追问

你提供的答案是不错,但我要的是一对一的单元格,如果任意一个单元格的内容变化后时间就会变的话那就不能达到要求了。谢谢!

追答

那你就用skyzxh的答案吧、通过Worksheet_Change方法可以进一步控制。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
cells(target.row , 2) = Now()
End If
End Sub
上面的代码要贴到Sheet对象中。
另外、第2列(B列)的格式要设置为yyyy/m/d h:mm:ss

追问

非常感谢...问题解决!

本回答被提问者采纳
相似回答