作者:
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.寄發方面,如果錄製巨集可行的話,就以錄製,若不行就以網友分享方式來處理
作者: 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個工作表的話,可先設。如不是,而是新增一個工作表就將該工作表複製到新活頁簿的話,則不用