ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助:多工作簿特定工作表特定区域提取数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-6-1 18:39 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
多工作簿特定工作表特定区域提取数据,已上传附件

多工作簿特定工作表特定区域提取数据.zip

44.31 KB, 下载次数: 18

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-1 19:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
求助,大佬们,因为每个工作簿里E9是合并的单元格,所以对应的行数不一样,选定区域我不知道怎么选定

TA的精华主题

TA的得分主题

发表于 2024-6-1 21:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-6-1 21:28 | 显示全部楼层
给你硬凑了一个,试一下:
Sub test()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim Mpath$, Mfile$, i%, n%, copyRange As Range, pasteRange As Range, E9r%, r1%, r2%
    Mpath = ThisWorkbook.Path & "\"
    Mfile = Dir(Mpath & "*.xls")
    r = Application.Max(Cells(Rows.Count, 2).End(xlUp).Row, 8)
    If Cells(r, 2).MergeCells Then
        Rows("8:" & Cells(r, 2).MergeArea.Row + Cells(r, 2).MergeArea.Rows.Count - 1).Delete
    Else
        Rows("8:" & Cells(r, 2).Row).Delete
    End If
    r2 = 7
    Do
        If Mfile <> ThisWorkbook.Name Then
            n = n + 1
            r = r2 + 1
            Set wb = GetObject(Mpath & Mfile)
            Set sh = wb.Sheets("分户表")
            Cells(r, 2) = n
            Cells(r, 3) = sh.Range("l2")
            Cells(r, 4) = sh.Range("c4")
            Cells(r, 5) = sh.Range("i4")
            E9r = sh.Range("e9").MergeArea.Row + sh.Range("e9").MergeArea.Rows.Count - 1
            Set copyRange = sh.Range("a9:l" & E9r)
            Set pasteRange = Range("f" & r)
            copyRange.Copy
            pasteRange.PasteSpecial Paste:=xlPasteAll
            Application.CutCopyMode = False
            wb.Close False
        End If
        r1 = Cells(Rows.Count, 16).End(xlUp).Row
        For i = r1 To r Step -1
            If Cells(i, "p") = 0 And Not Cells(i, "p").MergeCells Then
                Rows(i).Delete
            End If
        Next
        r2 = Cells(Rows.Count, 16).End(xlUp).Row
        If Cells(r2, 16).MergeCells Then
            r2 = Cells(r2, 16).MergeArea.Row + Cells(r2, 16).MergeArea.Rows.Count - 1
        Else
            r2 = Cells(r2, 16).Row
        End If
        With Range("B" & r & ":B" & r2 & ",C" & r & ":C" & r2 & ",D" & r & ":D" & r2 & ",E" & r & ":E" & r2)
            .Merge
            .HorizontalAlignment = xlLeft
            .VerticalAlignment = xlCenter
            .Borders.LineStyle = xlContinuous
            .Borders(xlEdgeLeft).Weight = xlThin
            .Borders(xlEdgeTop).Weight = xlThin
            .Borders(xlEdgeBottom).Weight = xlThin
            .Borders(xlEdgeRight).Weight = xlThin
        End With
        Mfile = Dir
    Loop Until Mfile = ""
    Range("b8").Select
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

多工作簿特定工作表特定区域提取数据.zip

62.39 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2024-6-1 21:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 shiruiqiang 于 2024-6-1 22:02 编辑

按照你的格式来
必须保证每张表内有"房号", "二、明细附后。"这两个
image.jpg

多工作簿特定工作表特定区域提取数据.rar

52.13 KB, 下载次数: 7

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-1 22:12 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-1 22:17 | 显示全部楼层
br(i) = .Sheets(1).UsedRange.Find(temp(i)).Row
这个是什么意思啊!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-1 22:20 | 显示全部楼层
发哥76 发表于 2024-6-1 21:28
给你硬凑了一个,试一下:
Sub test()
    Application.ScreenUpdating = False

pasteRange.PasteSpecial Paste:=xlPasteAll
测试有问题,这是什么意思

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-1 22:22 | 显示全部楼层
shiruiqiang 发表于 2024-6-1 21:56
按照你的格式来
必须保证每张表内有"房号", "二、明细附后。"这两个

br(i) = .Sheets(1).UsedRange.Find(temp(i)).Row 1717251724218(1).jpg

TA的精华主题

TA的得分主题

发表于 2024-6-1 22:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一壶鱼 发表于 2024-6-1 22:20
pasteRange.PasteSpecial Paste:=xlPasteAll
测试有问题,这是什么意思

复制粘贴啊,在我这里好用哦,
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 06:56 , Processed in 0.047814 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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