ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 根据指定条件汇总

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-7-21 09:11 | 显示全部楼层 |阅读模式
各位DX,有一个小小的需求,
点击“汇总”按钮,将源工作簿的源工作表的源区域复制到本工作簿的目标工作表的目标区域
(粘贴时采用数值粘贴的方式)

代码怎么写呢?非常感谢!

汇总.zip

50.95 KB, 下载次数: 18

TA的精华主题

TA的得分主题

发表于 2016-7-21 09:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub 批量复制模板并命名()
Dim mypath$, myfile$
Dim cnn As Object
Dim Sql As String
Set cnn = CreateObject("ADODB.CONNECTION")
mypath = ThisWorkbook.Path & "\"
myfile = Dir(mypath & "*.xlsb")
Do While myfile <> ""
    If myfile <> ThisWorkbook.Name Then
        cnn.Open "Provider=Microsoft.ACE.OleDb.12.0;Extended Properties='Excel 12.0;HDR=NO'; Data Source=" & mypath & myfile
        Sql = "select * from [结论$d3:f8]"
            With Sheets(Replace(myfile, ".xlsb", ""))
                .[C3:E8] = ""
                .[c3].CopyFromRecordset cnn.Execute(Sql)
            End With
        cnn.Close
    End If
    myfile = Dir()
Loop
Set cnn = Nothing
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-21 10:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
魂断蓝桥 发表于 2016-7-21 09:52
Sub 批量复制模板并命名()
Dim mypath$, myfile$
Dim cnn As Object

非常感谢!

[结论$d3:f8]
.[C3:E8] = ""

这些如果要写活的话,怎么写呀?

因为
“源工作簿、源工作表、源区域、本工作簿的目标工作表、目标区域”都是随时变化的。

TA的精华主题

TA的得分主题

发表于 2016-7-21 11:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
headtrain 发表于 2016-7-21 10:44
非常感谢!

[结论$d3:f8]

可以根据工作表相关这张表写,

你这个表都是存在的吧

TA的精华主题

TA的得分主题

发表于 2016-7-21 11:08 | 显示全部楼层
headtrain 发表于 2016-7-21 10:44
非常感谢!

[结论$d3:f8]

Sub a()
Dim mypath$, myfile$, arr, i%
Dim cnn As Object
Dim Sql As String
Set cnn = CreateObject("ADODB.CONNECTION")
arr = Sheet2.[d2].CurrentRegion
mypath = ThisWorkbook.Path & "\"
For i = 2 To UBound(arr)
    cnn.Open "Provider=Microsoft.ACE.OleDb.12.0;Extended Properties='Excel 12.0;HDR=NO'; Data Source=" & mypath & arr(i, 1)
    Sql = "select * from [" & arr(i, 2) & "$" & arr(i, 3) & "]"
        With Sheets(arr(i, 4))
            .Range(arr(i, 5)) = ""
            .[c3].CopyFromRecordset cnn.Execute(Sql)
        End With
        cnn.Close
Next
Set cnn = Nothing
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-21 11:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
魂断蓝桥 发表于 2016-7-21 11:08
Sub a()
Dim mypath$, myfile$, arr, i%
Dim cnn As Object

不好意思,   麻烦了~
.[c3].CopyFromRecordset cnn.Execute(Sql)
中的C3怎么写活呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-21 13:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
魂断蓝桥 发表于 2016-7-21 11:08
Sub a()
Dim mypath$, myfile$, arr, i%
Dim cnn As Object

已改好,谢谢了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-21 13:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
魂断蓝桥 发表于 2016-7-21 11:08
Sub a()
Dim mypath$, myfile$, arr, i%
Dim cnn As Object

真棒!

数据库的写法运行速度非常快,好像源文件都不需要打开,就把数据汇总过来了~

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-21 14:01 | 显示全部楼层
魂断蓝桥 发表于 2016-7-21 11:08
Sub a()
Dim mypath$, myfile$, arr, i%
Dim cnn As Object

在实际应用中,还有一个需求与上面的“汇总”反向操作(详见附件):
点击“复制”按钮,
将本工作簿的源工作表的源区域
复制到目标工作簿的目标工作表的目标区域
(粘贴时采用数值粘贴的方式)


恕本人小白,在上面代码的基础上,怎么改都不对,不知能否再次麻烦DX相助?

非常感谢!!!

复制.zip

62.03 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2016-7-21 15:49 | 显示全部楼层
headtrain 发表于 2016-7-21 14:01
在实际应用中,还有一个需求与上面的“汇总”反向操作(详见附件):
点击“复制”按钮,
将本工作簿的 ...

添加,修改对格式的要求高一些,还是用简单的办法吧

Sub a()
Dim arr, mypath$, mybook As Workbook, i%
Set mybook = ThisWorkbook
mypath = ThisWorkbook.Path & "\"
arr = Sheet2.[j2].CurrentRegion
For i = 2 To UBound(arr)
    With Workbooks.Open(mypath & arr(i, 3))
        mybook.Sheets(arr(i, 1)).Range(arr(i, 2)).Copy .Sheets(arr(i, 4)).Range(arr(i, 5))
        .Close True
    End With
Next
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 19:08 , Processed in 0.029111 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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