ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求教将Excel的每一条数据转换成多个Excel表【高难】

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-2-16 12:34 | 显示全部楼层 |阅读模式
求教将Excel的每一条数据转换成多个Excel表
一条数据,自动填写到Excel表中对应的位置,形成多个Excel文件
多条数据.zip (7.46 KB, 下载次数: 9) 数据自动生成到表中.zip (9.05 KB, 下载次数: 12)

TA的精华主题

TA的得分主题

发表于 2020-2-16 21:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 Nonenever 于 2020-2-16 21:35 编辑

做了一下
感觉数据多了要运行的慢一点
  1. Sub 个人健康信息报告表更新()
  2.     Application.ScreenUpdating = False                       '关闭屏幕更新
  3.     On Error Resume Next
  4.     Application.DisplayAlerts = False
  5.     Dim folder As String
  6.     folder = ThisWorkbook.Path & "\个人健康信息报告表文件夹"               '保存工作簿文件的目录
  7.     If Len(Dir(folder, vbDirectory)) = 0 Then MkDir folder   '选择是否新建该文件夹
  8.     Dim sht As Worksheet
  9.       
  10.    
  11.     Dim i%, 数据行数, sname
  12.    
  13.    
  14.     数据行数 = Sheets("数据").Range("B" & Rows.Count).End(xlUp).Row
  15.    
  16.    
  17.     If 数据行数 < 2 Then
  18.    
  19.    
  20.     MsgBox "无数据!"
  21.         Application.ScreenUpdating = True                           '开启屏幕更新
  22.         Application.DisplayAlerts = True
  23.     Exit Sub
  24.    
  25.     End If
  26.    
  27.    


  28. For i = 2 To 数据行数
  29. If Sheets("数据").Cells(i, "B") <> "" Then
  30. sname = i - 1 & "-" & Sheets("数据").Cells(i, "B") '文件名字

  31. ' Sheets("个人健康信息报告表").Cells(4, "B") = Sheets("数据").Cells(i, "B")
  32. Sheets("个人健康信息报告表").Range("$B$4") = Sheets("数据").Cells(i, "B")
  33. Sheets("个人健康信息报告表").Range("$D$4") = Sheets("数据").Cells(i, "C")
  34. Sheets("个人健康信息报告表").Range("$F$4") = Sheets("数据").Cells(i, "D")
  35. Sheets("个人健康信息报告表").Range("$H$4") = Sheets("数据").Cells(i, "E")
  36. Sheets("个人健康信息报告表").Range("$B$5") = Sheets("数据").Cells(i, "F")
  37. Sheets("个人健康信息报告表").Range("$D$5") = Sheets("数据").Cells(i, "G")
  38. Sheets("个人健康信息报告表").Range("$F$5") = Sheets("数据").Cells(i, "H")
  39. Sheets("个人健康信息报告表").Range("$B$6") = Sheets("数据").Cells(i, "I")
  40. Sheets("个人健康信息报告表").Range("$F$6") = Sheets("数据").Cells(i, "J")
  41. Sheets("个人健康信息报告表").Range("$B$7") = Sheets("数据").Cells(i, "K")
  42. Sheets("个人健康信息报告表").Range("$B$8") = Sheets("数据").Cells(i, "L")
  43. Sheets("个人健康信息报告表").Range("$B$9") = Sheets("数据").Cells(i, "M")
  44. Sheets("个人健康信息报告表").Range("$F$9") = Sheets("数据").Cells(i, "N")
  45. Sheets("个人健康信息报告表").Range("$B$10") = Sheets("数据").Cells(i, "O")
  46. Sheets("个人健康信息报告表").Range("$B$11") = Sheets("数据").Cells(i, "P")
  47. Sheets("个人健康信息报告表").Range("$B$12") = Sheets("数据").Cells(i, "Q")
  48. Sheets("个人健康信息报告表").Range("$B$13") = Sheets("数据").Cells(i, "R")
  49. Sheets("个人健康信息报告表").Range("$C$14") = Sheets("数据").Cells(i, "S")
  50. Sheets("个人健康信息报告表").Range("$F$14") = Sheets("数据").Cells(i, "T")



  51.         Sheets("个人健康信息报告表").Copy                                   '复制工作表到新工作簿
  52.         ActiveWorkbook.SaveAs folder & "" & sname & ".xlsx"  '保存工作簿,并命名
  53.         ActiveWorkbook.Close

  54. End If

  55. Next i



  56. Sheets("个人健康信息报告表").Range("$B$4") = ""
  57. Sheets("个人健康信息报告表").Range("$D$4") = ""
  58. Sheets("个人健康信息报告表").Range("$F$4") = ""
  59. Sheets("个人健康信息报告表").Range("$H$4") = ""
  60. Sheets("个人健康信息报告表").Range("$B$5") = ""
  61. Sheets("个人健康信息报告表").Range("$D$5") = ""
  62. Sheets("个人健康信息报告表").Range("$F$5") = ""
  63. Sheets("个人健康信息报告表").Range("$B$6") = ""
  64. Sheets("个人健康信息报告表").Range("$F$6") = ""
  65. Sheets("个人健康信息报告表").Range("$B$7") = ""
  66. Sheets("个人健康信息报告表").Range("$B$8") = ""
  67. Sheets("个人健康信息报告表").Range("$B$9") = ""
  68. Sheets("个人健康信息报告表").Range("$F$9") = ""
  69. Sheets("个人健康信息报告表").Range("$B$10") = ""
  70. Sheets("个人健康信息报告表").Range("$B$11") = ""
  71. Sheets("个人健康信息报告表").Range("$B$12") = ""
  72. Sheets("个人健康信息报告表").Range("$B$13") = ""
  73. Sheets("个人健康信息报告表").Range("$C$14") = ""
  74. Sheets("个人健康信息报告表").Range("$F$14") = ""

  75.     Application.DisplayAlerts = True
  76.     Application.ScreenUpdating = True                           '开启屏幕更新
  77. End Sub

  78.   
复制代码



表格的最后一行改了一下

2020年02月16日-数据导出为个人健康信息报告表.7z

24.06 KB, 下载次数: 3

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-2-16 12:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 chxw68 于 2020-2-16 15:14 编辑

这个不是高难而是超级难!

TA的精华主题

TA的得分主题

发表于 2020-2-16 13:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-2-16 15:35 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-2-16 22:24 | 显示全部楼层
这个不是高难而是超级难!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-23 14:55 , Processed in 0.044894 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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