作者ktll (浪跡天涯的旅人)
看板Office
標題[算表] VBA篩選後另存新檔
時間Mon Aug 24 22:16:28 2020
軟體: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
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.199.137 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1598278592.A.810.html
※ 編輯: ktll (42.76.199.137 臺灣), 08/24/2020 22:22:55
※ 編輯: ktll (42.76.199.137 臺灣), 08/24/2020 22:24:22
1F:→ soyoso: 副檔名要存為.xlsx,".xls"改為".xlsx" 08/24 22:27
2F:→ soyoso: 內文舉例來看分公司有排序的話 08/24 22:38
※ 編輯: ktll (42.76.199.137 臺灣), 08/24/2020 22:53:38
6F:→ ktll: 另外想請問 08/24 23:48
7F:→ ktll: 在複製貼上後 再加上自動調整欄寬與列高 要怎麼設定 謝謝 08/24 23:48
9F:→ soyoso: 是什麼錯誤訊息提供一下。另外並沒有按照我提供的第二方法 08/25 00:05
10F:→ soyoso: ,cnt = lLoop + cnt-1,我不是這麼寫的 08/25 00:05
11F:→ soyoso: 自動調整欄寬與列高,range.autofit 08/25 00:05
13F:→ ktll: 已改成 lLoop = lLoop + cnt - 1 謝謝 08/25 00:14
14F:→ soyoso: cells(...,1)這裡數字的1打成英文小寫的L(l)嗎? 08/25 00:18
16F:→ soyoso: 該錯誤訊息 08/25 00:19
17F:→ ktll: 原來是打錯 謝謝你! 另外剛剛持續執行後 存檔的檔 08/25 00:26
18F:→ ktll: 未照分公司命名 反而照編號命名 這部分的話 需要怎麼修改呢? 08/25 00:27
19F:→ soyoso: 巨集所寫cells(...,1)的1就是以a欄編號做為檔名,分公司的 08/25 00:33
20F:→ soyoso: 話為3 08/25 00:33
21F:→ ktll: 好的! 真的太感謝你了! 08/25 00:34