设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 393|回复: 0
打印 上一主题 下一主题

使用VBA-EXCEL97/2000实现输入金额就得到输入时间

[复制链接]
跳转到指定楼层
1#
发表于 2002-9-25 18:52:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一位网友问我,他遇到了一个问题,就是在每次输入一个单元格的时候就自动让它在邻近的单元格中,输入当前的输入日期及时间,(精确到"秒"如下表所示,只用我输入"金额"立即在相邻的"修改日期"单元格内,显示当期的时间!)

金额
修改日期

¥ 56.00
12/5/1999 9:07:58 PM

¥ 45.00
12/5/1999 9:08:00 PM

¥ 67.00
12/5/1999 9:08:01 PM

¥ 76.00
12/5/1999 9:08:03 PM

¥ 78.00
12/5/1999 9:08:06 PM

¥ 87.00
12/5/1999 9:08:09 PM

¥ 45.00
12/5/1999 9:08:12 PM

¥ 46.00
1/3/2000 11:17:07 AM

¥ 59.00
1/3/2000 11:17:09 AM

¥ 56.00
1/3/2000 11:22:26 AM

¥ 60.00
1/3/2000 11:22:29 AM

¥ 23.00
1/3/2000 11:22:35 AM


    为了解决这个问题我,选用了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高手,写出更多更好的代码,以便我们的工作!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-22 07:13 , Processed in 0.090022 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表