Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4056|回复: 7

[已解决]利用VBA工作表事件,在某个单元格输入身份证号时

[复制链接]
发表于 2014-4-18 17:53 | 显示全部楼层 |阅读模式
利用VBA工作表事件,在某个单元格输入身份证号时,另一个单元格就自动生成对应的出生日期

利用VBA工作表事件,在某个单元格输入身份证号时,另一个单元格就自动生成对应的出生日期公式和年龄公式

在名册工作表中,指定一个区域(如I2:I50)这个区域,某一个单元格输入身份证号码 ,对应行的某列就生成 出生日期和年龄的公式:

例如:
I2输入身份证号,就在第二行的L列 生成出生年月的公式
I4输入身份证号,就在第四行的N列 生成年龄的公式(生成的必须是公式,以便于更新年龄)
其它同理
请朋友老师们帮帮忙,谢谢大家了!

利用VBA工作表事件,在某个单元格输入身份证号时,另一个单元格就自动生成对应的出生日期.rar (2.61 KB, 下载次数: 9)
发表于 2014-4-18 18:20 | 显示全部楼层
这个公式就解决,为什么一定要VBA呢
回复

使用道具 举报

 楼主| 发表于 2014-4-18 18:27 | 显示全部楼层
开心妙妙 发表于 2014-4-18 18:20
这个公式就解决,为什么一定要VBA呢

不想,每次,输入时就要复制下拉公式 (预先复制所有单元格公式时,别人在在填写时,又容易弄错,)

想用VBA事件来自动生成公式。

回复

使用道具 举报

发表于 2014-4-18 18:30 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Column = 9 And Target.Row > 1 Then
  3.     zf = Target.Value
  4.     If zf = "" Then Union(Target.Offset(0, 3), Target.Offset(0, 5)) = "": Exit Sub
  5.     y = Mid(zf, 7, 4)
  6.     m = Mid(zf, 11, 2)
  7.     d = Mid(zf, 13, 2)
  8.     Target.Offset(0, 3) = DateSerial(y, m, d)
  9.     Target.Offset(0, 5) = "=YEAR(NOW())-YEAR(RC[-2])"
  10. End If
  11. End Sub
复制代码
回复

使用道具 举报

发表于 2014-4-18 18:33 | 显示全部楼层    本楼为最佳答案   
i列设为文本格式,输入时不要加西文符号'

评分

参与人数 1 +9 收起 理由
yjwdjfqb + 9 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-4-18 18:42 | 显示全部楼层
dsmch 发表于 2014-4-18 18:33
i列设为文本格式,输入时不要加西文符号'

老师你好,感谢你的帮助

i列设为文本格式,输入时不要加西文符号'

我加了  西文符号'   这个单引号,得到的出生日期也是正确的。

我习惯加单引号,怕身份让号码输错

可以吧!


点评

用len()测试了一下,'不占用字节,代码不要改动  发表于 2014-4-18 18:56
回复

使用道具 举报

 楼主| 发表于 2014-4-18 19:17 | 显示全部楼层
谢谢 dsmch  老师的指点
回复

使用道具 举报

 楼主| 发表于 2014-4-19 00:03 | 显示全部楼层
dsmch 发表于 2014-4-18 18:33
i列设为文本格式,输入时不要加西文符号'

老师你好,还在线呀
帮我看看这个好吧

未命名.JPG

关于VBA事件,表述方式.rar (8.32 KB, 下载次数: 20)

点评

h=target.row‘行;公式部分无须改动  发表于 2014-4-19 05:23
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 10:09 , Processed in 0.343900 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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