中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual Basic > 综合文章
VBA实现输入金额得到输入时间
作者:未知 时间:2005-08-07 20:50 出处:编程爱好者网站 责编:chinaitpower
              摘要:VBA实现输入金额得到输入时间
有一位网友问我,他遇到了一个问题,就是在每次输入一个单元格的时候就自动让它在邻近的单元格中,输入当前的输入日期及时间,(精确到"秒"如下表所示,只用我输入"金额"立即在相邻的"修改日期"单元格内,显示当期的时间!)

为了解决这个问题我,选用了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高手,写出更多更好的代码,以便我们的工作!

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有