工作簿A含有四个sheet:a,b,c,d,现需复制其中a,b的指定区域,新建工作簿并保存至A所在路径,名称为1-A,1-A中sheet名称为1-a,1-b,(A中a指定区域复制至1-A中1-a,A中b指定区域复制至1-A中1-b),用VBA怎么实现呢?
谢谢大家!
VBA使用工作表的Copy方法复制,用After或者Before指定复制到的位置,否则复制到新工作簿。
例如:
WorkBooks("文件一.xlsx").Sheets("表一").Copy After:=WorkBooks("文件二.xlsx").Sheets("表2")
扩展资料:
VBA的常用内置函数:
MsgBox
InputBox
舍入函数:Fix 向0取整,Int向下取整, Round四舍五入
Rnd: 返回0-1内的单精度随机数
Filter:对字符串的一维数组的过滤
InStr([Start, ]<Str1>,<Str2>[, Compare])与InStrRev: 查找子串
Len:字符串长度
Join:连接一维数组中的所有子字符串
Left,Right,Mid: 截取子字符串
Space(数值) :生成空格字符串
Ucase,Lcase:大小写转换函数
Ltrim, Rtrim,Trim :删除首尾空格
参考资料来源:百度百科-VBA (Visual Basic宏语言)
Sub 新建工作簿()
Application.ScreenUpdating = False
Dim gzb As Workbook
Set gzb = Workbooks.Add
ActiveSheet.Name = "1-a"
Workbooks("A.xls").Sheets("a").Cells.Copy [a1]
Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "1-b"
Workbooks("A.xls").Sheets("b").Cells.Copy [a1]
gzb.SaveAs ThisWorkbook.Path & "\1-A.xls", FileFormat:=xlExcel8
Set gzb = Nothing
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub
这个vba代码写在A工作簿的模块里即可,指定区域你可以自己修改下代码,我这里是全表复制的效果。
我的代码:小白不懂,能修改下吗?
另一个问题,Application.ScreenUpdating = False/ture 这两句的作用大吗?应该可以不加的吧?
Application.ScreenUpdating 最好加一下,后台执行的效率会比较高一些。
本回答被提问者采纳不不,不要这样,删除数量巨大,就是选择,复制,选择,复制
追答哦,选择区域的条件是什么?