[算表] VBA筛选后另存新档

楼主: ktll (浪迹天涯的旅人)   2020-08-24 22:16:28
软件:EXCEL
版本:2016
目前的资料如下:
编号 总公司 分公司 部门组别 姓名 性别 报名
1 A B F 甲 男 Y
2 A B F 乙 男 N
3 A B G 丙 女 Y
4 A C H 丁 女 Y
5 A C I 戊 男 Y
6 A D J 己 女 Y
7 A D K 庚 男 N
8 A E L 辛 女 Y
9 A E M 壬 男 N
想依分公司进行筛选后另存新档 (即将所有分公司存在同一个档案)
内容为
编号 总公司 分公司 部门组别 姓名 性别 报名
1 A B F 甲 男 Y
2 A B F 乙 男 N
3 A B G 丙 女 Y
存盘为B.xlsx
有参考精华区中的资料
Sub Macro1()
Dim rLastCell As Range
Dim strName As String
Dim lLoop As Long
Dim wbNew As Workbook
With ThisWorkbook.Sheets(1)
Set rLastCell = .Cells.Find(What:="*", After:=[A1], _
SearchDirection:=xlPrevious)
For lLoop = 2 To rLastCell.Row
Set wbNew = Workbooks.Add
.Range("1:1," & lLoop & ":" & lLoop).EntireRow.Copy _
Destination:=wbNew.Sheets(1).Range("A1")
wbNew.Close SaveChanges:=True, Filename:=ThisWorkbook.Path _
& Application.PathSeparator & .Cells(lLoop, 1) & ".xls"
Next lLoop
End With
End Sub
但筛选出来的都只有第一列,以及存成的档案都是.xls
所以想请问各位大大该怎么修改程式,让档案可以顺利筛选与存成.xlsx
谢谢
作者: soyoso (我是耀宗)   2020-08-24 22:27:00
副档名要存为.xlsx,".xls"改为".xlsx"内文举例来看分公司有排序的话宏调整为 https://i.imgur.com/jcS2GdH.jpg或是 https://i.imgur.com/Eyoq1mK.jpg
楼主: ktll (浪迹天涯的旅人)   2020-08-24 23:29:00
按照第二个方法 存盘时出现错误 https://imgur.com/L87cCJu另外想请问在复制贴上后 再加上自动调整栏宽与列高 要怎么设定 谢谢
作者: soyoso (我是耀宗)   2020-08-25 00:05:00
测试没问题 https://i.imgur.com/paCYh10.jpg是什么错误讯息提供一下。另外并没有按照我提供的第二方法,cnt = lLoop + cnt-1,我不是这么写的自动调整栏宽与列高,range.autofit
楼主: ktll (浪迹天涯的旅人)   2020-08-25 00:13:00
错误讯息 https://imgur.com/RSYNfjA已改成 lLoop = lLoop + cnt - 1 谢谢
作者: soyoso (我是耀宗)   2020-08-25 00:18:00
cells(...,1)这里数字的1打成英文小写的L(l)吗?如果是的话,可模拟 https://i.imgur.com/Z25e7PY.jpg 出该错误讯息
楼主: ktll (浪迹天涯的旅人)   2020-08-25 00:26:00
原来是打错 谢谢你! 另外刚刚持续执行后 存盘的档未照分公司命名 反而照编号命名 这部分的话 需要怎么修改呢?
作者: soyoso (我是耀宗)   2020-08-25 00:33:00
宏所写cells(...,1)的1就是以a栏编号做为档名,分公司的话为3
楼主: ktll (浪迹天涯的旅人)   2020-08-25 00:34:00
好的! 真的太感谢你了!

Links booklink

Contact Us: admin [ a t ] ucptt.com