[算表] excel選取儲存格範圍另存工作表-錄製巨集

作者: quirrky (@@)   2019-11-20 00:46:57
軟體:excel
版本:2010
在excel一個工作表中有100位員工薪資條明細
每人都是固定17列6欄的儲存格範圍
已使用錄製巨集選取每位資料後
貼到新的工作表中
示範excel如下
https://reurl.cc/EKmZ81
程式碼如下
Sub 巨集1()
'
' 巨集1 巨集
'
'
ActiveCell.Range("A1:F17").Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
ActiveCell.Columns("A:F").EntireColumn.Select
ActiveCell.Offset(4, 0).Range("A1").Activate
Selection.ColumnWidth = 12.64
ActiveCell.Columns("A:A").EntireColumn.Select
ActiveCell.Activate
Selection.ColumnWidth = 15.71
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\Users\USER\Desktop\活頁簿25.xls", _
FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Sheets("工作表1").Select
ActiveCell.Offset(18, 0).Range("A1:F1").Select
End Sub
1.不知如何修改成迴圈程式碼
可以順利執行100位的工作表
2.後續是否有可能可設定工作表命名皆為「201911」?
以及每個工作表另存獨立一個excel活頁簿檔案,檔名設為「某某某薪資條」
3.或者在問題1階段,先完成100個命名為「工作表00」
再另外用巨集的方式,重新按照名字命名
4.最後需要將每個excel獨立寄給100位員工,是否也可以用錄製巨集方式完成?
網路上找到有板友分享此方法
https://www.youtube.com/watch?v=YktQVwUdDrg
作者: soyoso (我是耀宗)   2019-11-20 07:27:00
1.以for...next包內文的巨集動作2.如要另存獨立活頁簿的話,就workbooks.add,複製貼上以range.copy複製範圍range.offset或range.offset.resize,offset的列偏移值以迴圈所設的變數檔名亦同,range.offset來取得b欄姓名儲存格的值,連接上以&,如"c:\users...\" & range.offset(或將值寫入的變數)3.工作表更名,worksheet.name4.寄發方面,如果錄製巨集可行的話,就以錄製,若不行就以網友分享方式來處理
作者: quirrky (@@)   2019-11-21 00:08:00
拍謝,請問[以for...next包內文的巨集動作]是什麼意思?之前涉過編號2-85工作表,迴圈設For i = 2 To 85...next該如何設迴圈?要先設好100個編號1-100之工作表嗎?
作者: soyoso (我是耀宗)   2019-11-21 07:24:00
就內文activecell.range...到activecell.offset(...)的動作。有100位,可設0 to 99或1 to 100,該變數用於range.offset列偏移值上就有可能會減1或不用是否要先設好100個編號的工作表就要看,設計上是先range.copy資料到這100個工作表的話,可先設。如不是,而是新增一個工作表就將該工作表複製到新活頁簿的話,則不用

Links booklink

Contact Us: admin [ a t ] ucptt.com