ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 如何根据某列出现过的值建工作表,并且出现几次就复制几次模板单据,将对应信息填...

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-3-17 20:35 | 显示全部楼层 |阅读模式
本帖最后由 kisooo 于 2020-3-18 10:30 编辑

上传的附件中有写了一点的程序,还请各位老师帮忙完善,多谢!

目前我已经解决的部分:
汇总表H列有几个单位就新建几个sheet,并且以H列的值命名sheet;
将明细表模板(在sheet1)复制到各个明细表。

未解决部分:
汇总表H列单位出现几次就在对应明细表复制几遍模板,每次复制隔三行;
汇总表的黄色/橙色信息分别复制到对应明细表的黄色/橙色信息。

附件里有一个“手动完成效果”,如果我没说清楚可以参考,多谢了!

汇总表

汇总表

明细表

明细表

求助.rar

76.74 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2020-3-18 07:33 | 显示全部楼层
本帖最后由 shenjianrong163 于 2020-3-18 07:35 编辑
  1. Sub 删除表()
  2.     Application.DisplayAlerts = False
  3.     If Worksheets.Count >= 4 Then
  4.         For i = Worksheets.Count To 4 Step -1
  5.             Worksheets(i).Delete
  6.         Next
  7.     End If
  8.     Application.DisplayAlerts = True
  9. End Sub

  10. Sub 按单位建表()
  11.     Dim i, j, r,arr
  12.     Call 删除表
  13.     With Sheets("汇总表")
  14.         r = .Cells(.Rows.Count, 8).End(xlUp).Row
  15.         arr = .Range("B3:H" & r)
  16.     End With
  17.    
  18.     For i = 1 To UBound(arr)
  19.         If TypeName(Application.Evaluate(arr(i, 7) & "!A1")) = "Error" Then
  20.             Sheets("模板").Copy after:=Sheets(Sheets.Count)
  21.             Sheets(Sheets.Count).Name = arr(i, 7)
  22.             With Sheets(arr(i, 7))
  23.                 j = .Cells(.Rows.Count, 2).End(xlUp).Row
  24.                 .Range("D" & j - 5) = arr(i, 1)
  25.                 .Range("D" & j - 4) = arr(i, 2)
  26.                 .Range("D" & j - 3) = arr(i, 3)
  27.                 .Range("C" & j - 2) = arr(i, 4)
  28.                 .Range("C" & j - 1) = arr(i, 5)
  29.             End With
  30.         Else
  31.             Sheets("模板").Rows("1:11").Copy Sheets(arr(i, 7)).Rows(Sheets(arr(i, 7)).Cells(Rows.Count, 2).End(xlUp).Row + 6)
  32.             With Sheets(arr(i, 7))
  33.                 j = .Cells(.Rows.Count, 2).End(xlUp).Row
  34.                 .Range("D" & j - 5) = arr(i, 1)
  35.                 .Range("D" & j - 4) = arr(i, 2)
  36.                 .Range("D" & j - 3) = arr(i, 3)
  37.                 .Range("C" & j - 2) = arr(i, 4)
  38.                 .Range("C" & j - 1) = arr(i, 5)
  39.             End With
  40.         End If
  41.     Next
  42. End Sub
复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-3-18 07:35 | 显示全部楼层
本帖最后由 shenjianrong163 于 2020-3-18 07:37 编辑

请参考附件:



汇款信息单-待完成.rar (20.94 KB, 下载次数: 8)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-18 10:07 | 显示全部楼层

太感谢您了!就是我想要的效果!这么早就来解答问题,感谢感谢感谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-16 12:36 , Processed in 0.042740 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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