二维码
微世推网

扫一扫关注

当前位置: 首页 » 快闻头条 » 科技资讯 » 正文

常用VBA(三)快速提取结构相同的多个表单中数据

放大字体  缩小字体 发布日期:2023-03-10 06:11:10    作者:叶青山    浏览次数:133
导读

目标源文件为每月得财务报表,查找值所在得单元格位置、表页结构和表页名称相同。局限和特点目标文件和源文件必须在同一个文件夹内设置条件,指定值和参数,如表页名称,目标值名称,目标值得单元格地址创建2个表页

目标

源文件为每月得财务报表,查找值所在得单元格位置、表页结构和表页名称相同。

局限和特点

目标文件和源文件必须在同一个文件夹内
设置条件,指定值和参数,如表页名称,目标值名称,目标值得单元格地址

创建2个表页,条件表和结果表,结果表用来存放提取得数据

条件表

结果表表头

程序

Private Sub CommandButton1_Click()Dim start As Doublestart = Timer '设置计时器Dim myfile, mypath, wb '声明变量Application.ScreenUpdating = False '关闭屏幕更新'预设定义Sheets("结果表").UsedRange.ClearR1 = Sheets("条件表").Range("B5").CurrentRegion.Rows.Count - 1 'b5单元格CTRL+A得区域得行数-1Sheets("条件表").Range("B5").Resize(R1, 1).CopySheets("结果表").Range("B1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True '转置R2 = Sheets("条件表").Range("C2")'预设定义执行完毕mypath = ThisWorkbook.Pathmyfile = Dir(mypath & "\*.xls*") '遍历当前文件夹内所有xls*文件N1 = 1 'N1为J结果表中行序号,和N1+1配合使用,放到哪个循环外Do While myfile <> ""If myfile <> ThisWorkbook.Name ThenSet wb = GetObject(mypath & "\" & myfile) 'wb为工作簿 For I = 1 To wb.Sheets.Count On Error Resume Next '报错跳过 If wb.Sheets(I).Name = R2 Then Sheets("结果表").Range("A1").Offset(N1, 0) = wb.Name For J = 1 To R1 R3 = Sheets("条件表").Range("C5").Offset(J - 1, 0) Sheets("结果表").Range("A1").Offset(N1, J) = wb.Sheets(R2).Range(R3) Next J End If Next I'主体程序执行完毕wb.Close FalseN1 = N1 + 1End Ifmyfile = DirLoopApplication.ScreenUpdating = TrueMsgBox "运行程序使用" & Format(Timer - start, "0.00") & "秒"End Sub

 
(文/叶青山)
打赏
免责声明
• 
本文为叶青山原创作品•作者: 叶青山。欢迎转载,转载请注明原文出处:http://www.udxd.com/news/show-372974.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们邮件:weilaitui@qq.com。
 

Copyright©2015-2023 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈