Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: johnson0505

[已解决]请问各位高手,如何利用公式调用成员名册表相关信息到登记表中的家庭成员区域?

[复制链接]
 楼主| 发表于 2021-6-3 16:42 | 显示全部楼层
本帖最后由 johnson0505 于 2021-6-3 16:51 编辑
cutecpu 发表于 2021-6-3 12:39
Sub demo()
   Application.Calculation = xlManual
   Set d = CreateObject("Scripting.Dictionary")

运行版主的VBA代码后,有三个问题想请教一下:
1.为何关运行代码后身份证号查找出来最后三位都为零,每户对应的身份证号能否通过按户主身份证号为基准去调用整户的成员信息;
2.如何将图片中的联系电话和银行账号加到代码中,匹配到值则返回值,匹配不到值则返回空格,留待手动打上去;
3.数据如果增加到几千行,这个代码如何改动,主要是我不理解代码含义,如果加以解释会更好。
关于运行VBA代码后身份证号查找后最后三位都为零的问题.jpg
代码解释.png
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2021-6-3 20:17 | 显示全部楼层
johnson0505 发表于 2021-6-3 16:42
运行版主的VBA代码后,有三个问题想请教一下:
1.为何关运行代码后身份证号查找出来最后三位都为零,每 ...

1.为何关运行代码后身份证号查找出来最后三位都为零,每户对应的身份证号能否通过按户主身份证号为基准去调用整户的成员信息;
把格式全部變為「文字」即可,下面代碼已用身分證為基準(key)

2.如何将图片中的联系电话和银行账号加到代码中,匹配到值则返回值,匹配不到值则返回空格,留待手动打上去;
參考下面代碼

3.数据如果增加到几千行,这个代码如何改动,主要是我不理解代码含义,如果加以解释会更好。
完全不用動,代碼自動適應

Sub demo()
   Application.Calculation = xlManual
   Set d = CreateObject("Scripting.Dictionary")
   a = Sheets(2).UsedRange
   For i = 4 To UBound(a)
      If a(i, 3) = a(i, 4) Then
         Key = a(i, 6) '身分證為 key
         d(Key) = i
      End If
      If i < UBound(a) Then
         If a(i + 1, 3) = a(i + 1, 4) Then e = 1 Else e = 0
      Else
         e = 1
      End If
      If e Then d(Key) = d(Key) & " " & i
   Next
   b = Sheets(1).UsedRange
   i = 0
   With Sheets(1)
      While i < UBound(b)
         Key = b(i + 4, 3)
         n = Split(d(Key))
         .Cells(i + 6, 6) = a(n(0), 13) '電話
         .Cells(i + 8, 4) = a(n(0), 12) '帳號
         r = i + 12
         For k = n(0) To n(1)
            r = r + 1
            .Cells(r, "b") = a(k, 4)
            .Cells(r, "c") = a(k, 7)
            .Cells(r, "d") = a(k, 6)
            .Cells(r, "e") = a(k, 9)
         Next
         i = i + 24
      Wend
   End With
   Application.Calculation = xlAutomatic
End Sub



祝順心,南無阿彌陀佛

数组运行卡顿 (上传).rar

34.97 KB, 下载次数: 3

回复

使用道具 举报

 楼主| 发表于 2021-6-4 00:00 | 显示全部楼层
本帖最后由 johnson0505 于 2021-6-4 16:25 编辑
cutecpu 发表于 2021-6-3 20:17
1.为何关运行代码后身份证号查找出来最后三位都为零,每户对应的身份证号能否通过按户主身份证号为基准去 ...

这个VBA程序很好用,版主算是我接触VBA的启蒙老师了,非常感谢,另外还有2个问题,1.我的户内登记表中联系电话和开户账号不一定是户主的,也有是其他家庭成员的,所以我在成员名册表中添加了开户户代表的辅助列,得同时满足编号列和开户户代表列才能在户内登记表中显示,没有则显示空值,代码中好像是以户主身份证为关键字去匹配这两个位置的值,好像还不能包含所有情况,另外能否实现匹配不到返回空值后,能自己打字上去,我试过能打上去,但重新运行代码,值就被清空了;2.我实际的工作表需要新建多个sheet1,如sheet2,用于编号为0051至0100的户号,以此类推,最后才是成员名册表,版主的代码我在我的完整文件上运行老提示类型不匹配,弹出结束窗口,请问版主如何按这两个情况修改代码?
mmexport1622761892881.jpg
mmexport1622761884942.png
mmexport1622761889310.jpg

关于联系电话需按列编号和开户户代表列匹配问题 (上传0604).rar

78.8 KB, 下载次数: 1

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 12:26 , Processed in 0.242553 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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