ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3380|回复: 15

[已解决] 跨表自动记录输入并查找提示【zhaogang1960老师赐教下解决】

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-1-4 17:42 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如附件,身份证号输入.xls的sheet!A1输入身份证号,希望达到以下效果:
1、在人员信息.xls的sheet!A列自动记录每次输入的身份证号码。(若需要处于打开状态,可事先打开人员信息.xls)
2、自动人员信息.xls的Agent Info表中(人员很多,附件予以简化)查找(H、J、L、N、P、R列)是否存在以上每次输入的身份证号。
若不存在,则在人员信息.xls的sheet!B列提示“不存在”。
若存在,则在人员信息.xls的sheet!B列显示该身份证号对应的姓名及其对应D列的姓名关系本人、父亲、母亲、夫妻、子女一、子女二)。
如:在身份证号输入.xls的sheet!A1输入230500400126071,则在人员信息.xls的sheet!A1记录230500400126071,并在人员信息.xls的sheet!B1显示 孙玉学 - 孙艳(父亲)
烦请高手予以赐教。谢谢!
问题.rar (2.67 KB, 下载次数: 13)

[ 本帖最后由 lisan 于 2011-1-4 20:30 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-4 18:36 | 显示全部楼层
问题应该说得很清楚呀。顶上去再求赐教。

TA的精华主题

TA的得分主题

发表于 2011-1-4 19:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
试试看:
问题.rar (11.3 KB, 下载次数: 36)

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-4 19:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我的神啊!谢谢!
我的意思是能显示 孙玉学 - 孙艳(父亲),烦请zhaogang1960 老师再修改一下。
另弱弱的问一句,VBA代码一定要写在身份证号输入.xls上吗?能不能写在人员信息.xls?

TA的精华主题

TA的得分主题

发表于 2011-1-4 19:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 lisan 于 2011-1-4 19:26 发表
我的神啊!谢谢!
我的意思是能显示 孙玉学 - 孙艳(父亲),烦请zhaogang1960 老师再修改一下。
另弱弱的问一句,VBA代码一定要写在身份证号输入.xls上吗?能不能写在人员信息.xls?

不能写在人员信息.xls,因为触发程序的动作是在身份证号输入.xls上发出的
问题.rar (14.73 KB, 下载次数: 39)

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-4 20:07 | 显示全部楼层
十分感谢zhaogang1960老师的赐教。
1、如果是本人,也希望按这种格式 孙艳 - 孙艳(本人)
2、能否用什么方法,不要将VBA代码写在身份证号输入.xls上(身份证号输入.xls无法修改),又能解决问题?
3、在人员信息.xls sheet!A列的记录能不能不要直接保存(由使用者关闭时再决定是否保存)?
烦请zhaogang1960老师再赐教,谢谢!

[ 本帖最后由 lisan 于 2011-1-4 20:12 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-1-4 20:13 | 显示全部楼层
原帖由 lisan 于 2011-1-4 20:07 发表
十分感谢zhaogang1960老师的赐教。
1、能否用什么方法,不要将VBA代码写在身份证号输入.xls上(身份证号输入.xls无法修改),又能解决问题?
2、在人员信息.xls sheet!A列的记录能不能不要直接保存(由使用者关闭时 ...

1、如果要在身份证号输入.xls上输入,那就得把vba写在上面,否则无法触发Worksheet_Change过程
2、把ThisWorkbook代码区中的Workbook_BeforeClose事件代码删除就可以了

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-4 20:20 | 显示全部楼层
如果是本人,也希望按这种格式 孙艳 - 孙艳(本人)。

TA的精华主题

TA的得分主题

发表于 2011-1-4 20:27 | 显示全部楼层
原帖由 lisan 于 2011-1-4 20:20 发表
如果是本人,也希望按这种格式 孙艳 - 孙艳(本人)。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) <> "A1" Then Exit Sub
    If Target = "" Then Exit Sub
    Dim wb As Workbook, c As Range, s$
    s = Target
    On Error Resume Next
    Application.ScreenUpdating = False
    Set wb = Workbooks("人员信息.xls")
    If wb Is Nothing Then Set wb = Workbooks.Open(ThisWorkbook.Path & "\人员信息.xls")
    wb.Sheets("Sheet1").[a65536].End(xlUp).Offset(1) = Target
    With wb.Sheets("Agent Info")
        Set c = .UsedRange.Offset(, 7).Find(s, , , xlWhole)
        If Not c Is Nothing Then
            If c.Column = 8 Then
                wb.Sheets("Sheet1").[a65536].End(xlUp).Offset(, 1) = c.Offset(, -3) & "-" & c.Offset(, -3) & "(本人)"
            Else
                wb.Sheets("Sheet1").[a65536].End(xlUp).Offset(, 1) = c.Offset(, -1) & "-" & .Cells(c.Row, 5) & "(" & Replace(.Cells(1, c.Column - 1), "姓名", "") & ")"
            End If
        Else
            wb.Sheets("Sheet1").[a65536].End(xlUp).Offset(, 1) = "不存在"
        End If
    End With
    Me.Activate
    Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-4 20:30 | 显示全部楼层
十分感谢zhaogang1960老师不厌其烦的赐教!问题解决!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 23:38 , Processed in 0.036882 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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