[算表] 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