Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 859667059

求好人心帮帮忙-利用户主身份证调取家庭成员信息

[复制链接]
发表于 2019-3-28 23:15 | 显示全部楼层
VBA在表sheet1中同一户主下的家庭成员数据不一定要集中在一起,可以在表最后随时添加记录!
服务器又上传不了图片和附件了
Sub chaxun()
    Dim arr, hh, k%, j%
    Set d1 = CreateObject("Scripting.Dictionary")  '字典d1计算户主家庭人口数
    Set d2 = CreateObject("Scripting.Dictionary")  '字典d2放户主家庭每个成员所在的行号

    '清除表格家庭成员原有数据
    Sheets("低保户").Range("a9:f17").ClearContents

    maxrow = Sheets("sheet1").Range("b" & Rows.Count).End(xlUp).Row
    arr = Sheets("sheet1").Range("a2:ah" & maxrow)
    For i = 1 To maxrow - 1
        d1(arr(i, 13)) = d1(arr(i, 13)) + 1
        d2(arr(i, 13)) = d2(arr(i, 13)) & "," & i
    Next
    sfz = Sheets("低保户").Range("F3")
    hh = d2(sfz)
    hh = Split(hh, ",")
    j = 0
    For i = 1 To UBound(hh)
        k = hh(i)
        If arr(k, 11) = "本人" Then
            With Sheets("低保户")
                .[B3] = arr(k, 12)  '户主姓名
                .[D3] = arr(k, 9)   '户主性别
                .[D4] = UBound(hh)  '家庭人口数
                .[F4] = arr(k, 10)  '是否建档立卡对象
                .[B5] = arr(k, 18)  '健康状况
                .[D5] = arr(k, 6)   '保障金额(元)
                .[F5] = arr(k, 26)  '起始保障年月
                .[B6] = arr(k, 29)  '居住地址
                .[F6] = arr(k, 30)  '联系电话
            End With
        Else
            With Sheets("低保户")
                .Range("A" & 9 + j) = arr(k, 2)    '户主家庭成员姓名
                .Range("B" & 9 + j) = arr(k, 11)   '与户主关系
                .Range("C" & 9 + j) = arr(k, 9)    '性别
                .Range("D" & 9 + j) = arr(k, 17)   '年龄
                .Range("E" & 9 + j) = arr(k, 34)   '出生年月
                j = j + 1
            End With
        End If
    Next
End Sub


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 21:13 , Processed in 0.210333 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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