Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1445|回复: 5

复制工作表

[复制链接]
发表于 2021-9-9 13:44 | 显示全部楼层 |阅读模式
Sub copysh()
'另存为对话框
fileSaveName = Application.GetSaveAsFilename("表二" & Format(Now, "YYYY-MM-DD-HHmmSS") & ".xls") '以标签名+日期命名
If fileSaveName <> False Then
Sheet2.Activate
ActiveSheet.Copy
    'ActiveWorkbook.SaveAs Filename:=fileSaveName & ".xls"   '新表打开
    ActiveWorkbook.Close SaveChanges:=True, Filename:=fileSaveName & ".xls"  '新表关闭
    Sheet1.Select
End If
End Sub

以上代码为复制sheet2整个工作表为新的工作薄,如果我只想复制sheet2的某个区域,如:A1:G100的区域,请问该如何修改呢?
发表于 2021-9-9 14:40 | 显示全部楼层
你试试
sheet2.Range("A1:G100").Select
Selection.Copy
回复

使用道具 举报

 楼主| 发表于 2021-9-9 16:17 | 显示全部楼层
猴子下山了 发表于 2021-9-9 14:40
你试试
sheet2.Range("A1:G100").Select
Selection.Copy

你好,我试过了,这样改的话就把所有的表都复制出来了,我也不知道为啥。。。。
回复

使用道具 举报

发表于 2021-9-9 22:14 | 显示全部楼层
Sub copy_copy()
Application.ScreenUpdating = False '关闭屏幕刷新
Dim wb As Workbook'声明
Set wb = Workbooks.Add '新建
ThisWorkbook.Sheets(1).Range("a1:a100").Copy wb.Sheets(1).Range("a1") '复制粘贴
wb.SaveAs ThisWorkbook.Path & "\" & Format(Now(), "yy-mm-dd-hh-mm-ss") & ".xlsx" '另存
wb.Close '关闭
Application.ScreenUpdating = True '屏幕刷新
End Sub

他途供参考
回复

使用道具 举报

发表于 2021-9-10 08:53 | 显示全部楼层
我觉得三楼的答案是正确的

回复

使用道具 举报

发表于 2021-9-10 13:53 | 显示全部楼层
本帖最后由 roserice 于 2021-9-10 18:24 编辑

Sub copysh1()
Sheet2.Activate
ActiveWorkbook.SaveAs Filename:=Format(Now, "YYYY-MM-DD-HHmmSS") & ".xls"   '新表打开
Sheet2.Cells.Delete
Workbooks.Open "c:\users\administrator\desktop\book1.xlsm" ‘book1是源表名
Workbooks(2).Sheets(2).Range("a1:a5").Copy Destination:=Workbooks(1).Sheets(2).Range("a1:a5")   
  ActiveWorkbook.Close
Sheet2.Select
End Sub

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 06:28 , Processed in 0.314450 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表