前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA一键提取广东省工资系统《个人信息采集表》A3版本

VBA一键提取广东省工资系统《个人信息采集表》A3版本

作者头像
哆哆Excel
发布2022-10-31 15:39:44
3090
发布2022-10-31 15:39:44
举报
文章被收录于专栏:哆哆Excel

前两天发一个提取A4版本的

VBA一键提取广东省工资系统《个人信息采集表》A4版本

其中因为A4版本的内容是

(1)前5行内容一致

(2)5行后根据个人的不同后面有不同的内容

所以我费了九N二H的力量,根据不同的内容做出不同的判断提取不同的内容到不同的单元格。(你看表达都这么麻烦,设计一定也不容易)

【解决来了】

今天下载了一个A3版本的,

简单是太完美啦

发现在A3版本的内容都是固定单元格的啦。

(1)只要我们找到要提取的内容的单元格(涂色的),放在第一行,如下图

再根据读取第一行的内容到数组,就可以得到列总数

(2)再读取文件的总个数就可以得到行总数,Redim一个数组(行总数,列总数)

(3)运行程序,自动循环逐一个打开Excel文件,读取第一行指定的单元格到汇总表

就可以轻松完完成数据的提取啦,3K左右个文件,400多秒就提取完成。完美,

【代码】

代码语言:javascript
复制
Sub yhd一键提取广东省工资系统个人信息A3版本()
    Dim mysht As Worksheet
    Dim fold As String, file, data_arr()
    Dim myobj As Object
    Dim file_num
    file_num = 0
  
    Set mysht = Sheets("提取A3")
    fold = SelectGetFolder
    If fold = "没有选择" Then Exit Sub
    arr = GetPathAllFile(fold)
    Call AppEx(False)
    ti = Timer()
    With mysht
        .Range("a5").Resize(5000, 200).ClearContents
        xl_c = .Range("A1").End(xlToRight).Column
        ReDim data_arr(UBound(arr) - 1, xl_c - 1)
        start_arr = .Range("A1").Resize(2, xl_c)
        Debug.Print UBound(start_arr, 2), UBound(data_arr, 1) & "--" & UBound(data_arr, 2)
    End With
    For Each rr In arr
        Set myobj = GetObject(rr)
        With myobj
            With .Sheets("Sheet1")
                For i = 1 To xl_c
                    data_arr(file_num, i - 1) = .Range(start_arr(1, i))
                Next i
            End With
            .Close False
        End With
        file_num = file_num + 1
        Set myobj = Nothing
    Next
    With mysht.Range("a5").Resize(UBound(data_arr, 1) + 1, UBound(data_arr, 2) + 1)
        .NumberFormatLocal = "@"
        .Value = data_arr                                      'Application.Transpose(arr)
        .ShrinkToFit = True
    End With
    Call AppEx(True)
    MsgBox "完成!用时" & Format(Timer - ti, "0000.00秒")
End Sub

代码放在此,可供自己和有用的人学习使用,如有问题,可向我提问

【效果】

你的点赞与赞赏是我前进的动力,

感谢!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档