Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2275|回复: 4

[已解决]vb周报表汇总

[复制链接]
发表于 2011-12-1 22:05 | 显示全部楼层 |阅读模式
本帖最后由 飞云流水 于 2011-12-1 22:10 编辑

大师帮忙把不同车间数据汇总至汇总表,有点麻烦,请各位看看!多谢!
最佳答案
2011-12-3 10:49
汇总表 和 三个子表要放在一个文件夹下, 然后在汇总表中插入以下代码,
  1. Option Explicit

  2. Sub 汇总周报数据()
  3.    Dim i As Integer, j As Integer
  4.    Dim wb1 As Workbook, wb2 As Workbook, wb3 As Workbook
  5.     j = -2
  6.     For i = 1 To Windows.Count
  7.         If Windows(i).Caption = "战狼队一车间周报.xlsx" Then
  8.            Set wb1 = Workbooks("战狼队一车间周报.xlsx")
  9.            Exit For
  10.         End If
  11.      Next
  12.      For i = 1 To Windows.Count
  13.         If Windows(i).Caption = "雄鹰队二车间周报.xlsx" Then
  14.            Set wb2 = Workbooks("雄鹰队二车间周报.xlsx")
  15.            Exit For
  16.         End If
  17.      Next
  18.      For i = 1 To Windows.Count
  19.         If Windows(i).Caption = "飞虎队三车间周报.xlsx" Then
  20.            Set wb3 = Workbooks("飞虎队三车间周报.xlsx")
  21.            Exit For
  22.         End If
  23.      Next
  24.      If wb1 Is Nothing Then Set wb1 = Workbooks.Open(ThisWorkbook.Path & "\战狼队一车间周报.xlsx")
  25.      If wb2 Is Nothing Then Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\雄鹰队二车间周报.xlsx")
  26.      If wb3 Is Nothing Then Set wb3 = Workbooks.Open(ThisWorkbook.Path & "\飞虎队三车间周报.xlsx")
  27.     For i = 3 To 5000 Step 5

  28.        If wb1.Sheets(1).Range("f" & i) = "" And wb2.Sheets(1).Range("f" & i) = "" And wb3.Sheets(1).Range("f" & i) = "" Then
  29.            Exit For
  30.         End If
  31.         j = j + 5
  32.         wb1.Sheets(1).Range("f" & i).Resize(5, 11).Copy ThisWorkbook.Sheets(1).Range("f" & j)
  33.         j = j + 5
  34.         wb2.Sheets(1).Range("f" & i).Resize(5, 11).Copy ThisWorkbook.Sheets(1).Range("f" & j)
  35.         j = j + 5
  36.         wb3.Sheets(1).Range("f" & i).Resize(5, 11).Copy ThisWorkbook.Sheets(1).Range("f" & j)
  37.      Next
  38.      wb1.Close True
  39.      wb2.Close True
  40.      wb3.Close True
  41.      
  42. End Sub
复制代码

VB周报表汇总.rar

133.8 KB, 下载次数: 83

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2011-12-2 17:29 | 显示全部楼层
大师拜拜帮帮忙!小弟在此谢过了!
回复

使用道具 举报

 楼主| 发表于 2011-12-2 20:00 | 显示全部楼层
飞云流水 发表于 2011-12-2 17:29
大师拜拜帮帮忙!小弟在此谢过了!

有人吗,咋没有人回复我呀
回复

使用道具 举报

发表于 2011-12-3 10:49 | 显示全部楼层    本楼为最佳答案   
汇总表 和 三个子表要放在一个文件夹下, 然后在汇总表中插入以下代码,
  1. Option Explicit

  2. Sub 汇总周报数据()
  3.    Dim i As Integer, j As Integer
  4.    Dim wb1 As Workbook, wb2 As Workbook, wb3 As Workbook
  5.     j = -2
  6.     For i = 1 To Windows.Count
  7.         If Windows(i).Caption = "战狼队一车间周报.xlsx" Then
  8.            Set wb1 = Workbooks("战狼队一车间周报.xlsx")
  9.            Exit For
  10.         End If
  11.      Next
  12.      For i = 1 To Windows.Count
  13.         If Windows(i).Caption = "雄鹰队二车间周报.xlsx" Then
  14.            Set wb2 = Workbooks("雄鹰队二车间周报.xlsx")
  15.            Exit For
  16.         End If
  17.      Next
  18.      For i = 1 To Windows.Count
  19.         If Windows(i).Caption = "飞虎队三车间周报.xlsx" Then
  20.            Set wb3 = Workbooks("飞虎队三车间周报.xlsx")
  21.            Exit For
  22.         End If
  23.      Next
  24.      If wb1 Is Nothing Then Set wb1 = Workbooks.Open(ThisWorkbook.Path & "\战狼队一车间周报.xlsx")
  25.      If wb2 Is Nothing Then Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\雄鹰队二车间周报.xlsx")
  26.      If wb3 Is Nothing Then Set wb3 = Workbooks.Open(ThisWorkbook.Path & "\飞虎队三车间周报.xlsx")
  27.     For i = 3 To 5000 Step 5

  28.        If wb1.Sheets(1).Range("f" & i) = "" And wb2.Sheets(1).Range("f" & i) = "" And wb3.Sheets(1).Range("f" & i) = "" Then
  29.            Exit For
  30.         End If
  31.         j = j + 5
  32.         wb1.Sheets(1).Range("f" & i).Resize(5, 11).Copy ThisWorkbook.Sheets(1).Range("f" & j)
  33.         j = j + 5
  34.         wb2.Sheets(1).Range("f" & i).Resize(5, 11).Copy ThisWorkbook.Sheets(1).Range("f" & j)
  35.         j = j + 5
  36.         wb3.Sheets(1).Range("f" & i).Resize(5, 11).Copy ThisWorkbook.Sheets(1).Range("f" & j)
  37.      Next
  38.      wb1.Close True
  39.      wb2.Close True
  40.      wb3.Close True
  41.      
  42. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-12-3 11:33 | 显示全部楼层
tianti 发表于 2011-12-3 10:49
汇总表 和 三个子表要放在一个文件夹下, 然后在汇总表中插入以下代码,

多谢老师帮忙,谢谢了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-28 05:03 , Processed in 0.261222 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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