ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何让一个excel文件每一行生成一个新的Excel文件,并命名,加密

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-9-9 08:11 | 显示全部楼层
gjytm 发表于 2019-9-8 19:51
太感谢了,研究之后我解决了我基本问题,其他还在研究。谢谢了

按照“三”的意思,给你改了一下,
  1. Public Sub 生成文件()
  2.     Application.ScreenUpdating = False    'Excel的工作表里面数据发生变化后False禁止实时刷新
  3.     Dim arr, wb As Workbook, i As Long, mFullPath$, FolderPath$
  4.     arr = Sheet1.UsedRange.Value   '用所有的可用数据给arr赋值,数组?
  5.     FolderPath = ThisWorkbook.Path & ""  '这里是生成的文件储存位置的字符串
  6.     For i = 2 To UBound(arr)    '数据(不是表头)行从第几行开始就数字就改成几。  'UBound的是数组的上界(搜索得知)
  7.         If arr(i, 2) <> "" Then
  8.             Set wb = Application.Workbooks.Add  '和新建工作簿有关,或者新建打开工作簿?
  9.             With wb   'with语句起到的是简化代码的作用
  10.                 With .Sheets(1)  '表示活动工作簿的第一个工作表。所以需要关掉其他文件。
  11.                     For j = 1 To UBound(arr, 2)
  12.                         .Cells(1, j) = arr(1, j)   '取表头
  13.                         .Cells(2, j).Value = arr(i, j)    '取内容(生成文件的第二行)
  14.                     Next
  15.                     .Columns("A:E").ColumnWidth = 11.63  '所有选择的列调整宽度,数值自行调整,请提前测试合适的宽度'
  16.                     With .Rows("1:2")  '选择前两行
  17.                         .HorizontalAlignment = xlCenter  '居中
  18.                         .VerticalAlignment = xlCenter  '居中
  19.                         .WrapText = True    '自动换行
  20.                     End With  '
  21.                     .Range("A1:E2").Borders.LineStyle = 1  '所选区域边框线实线
  22.                 End With
  23.                 mFullPath = FolderPath & arr(i, 6) & ".xlsx"  '这里显示的是生成后文件名的构成,姓名在第几列,就把这行的数字改成几
  24.                 .SaveAs Filename:=mFullPath, FileFormat:=xlOpenXMLWorkbook, Password:=arr(i, 4), CreateBackup:=False
  25.                 '分别代表:保存文件名为XXX(其本质是一个文件夹+文件的地址信息),保存文件格式为.xlsx,密码在第几列就把数字改成几,清空后台数据。
  26.                 .Close
  27.             End With
  28.         End If
  29.     Next
  30.     Set wb = Nothing   '释放内存
  31.     Application.ScreenUpdating = True   '可以刷新看结果
  32. End Sub
复制代码


TA的精华主题

TA的得分主题

发表于 2019-9-9 08:13 | 显示全部楼层
gjytm 发表于 2019-9-8 19:51
太感谢了,研究之后我解决了我基本问题,其他还在研究。谢谢了

代码审核中,先上图:
030.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-9 11:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
opel-wong 发表于 2019-9-9 08:13
代码审核中,先上图:

非常感谢,学习了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-23 16:19 , Processed in 0.027713 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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