VBA 复制工作表至新的工作簿中的工作表

工作簿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宏语言)

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-21

      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 最好加一下,后台执行的效率会比较高一些。

本回答被提问者采纳
第2个回答  2015-10-23
将ab两个工作表,移动复制成新的工作簿,修改工作表名称,删除不想要的数据,
再保存。
用这个思路录制个宏就明白了。追问

不不,不要这样,删除数量巨大,就是选择,复制,选择,复制

追答

哦,选择区域的条件是什么?

相似回答