首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于将工作表复制和粘贴到新工作簿中的VBA宏

用于将工作表复制和粘贴到新工作簿中的VBA宏
EN

Stack Overflow用户
提问于 2017-08-28 22:08:03
回答 1查看 9.5K关注 0票数 2

我每天都做一份报告,其中我必须将几张工作表复制并粘贴到一个名为“报告(今天的日期)”的新工作簿中。

在我的报告中,我有4张表: Customers、Orders、Country、ID。

Customer和Country是从主文件中复制和粘贴的简单内容,但Orders和ID是从主文件中我的一个工作表中筛选出来的数据。订单被过滤为"Complete“,Id是除ID200和500之外的所有内容。

我尝试基于这里提供的解决方案构建宏:http://www.hivmr.com/db/ack717pc8f88jpdsf7838pcaspkcsdmd

复制和粘贴工作正常,但我无法复制和粘贴多张图纸/重命名图纸和过滤数据。

编辑:

代码语言:javascript
运行
复制
Sub CopyInNewWB()
    'has been tested 
    Dim newWS, WS As Worksheet 
    Application.ScreenUpdating = False 
    Set WS = ThisWorkbook.Sheets("Sheet1") 
    Set newWS = Workbooks.Add.Sheets("Sheet1") 
    WS.Cells.Copy 
    newWS.Cells.PasteSpecial xlValues Application.CutCopyMode = False 
    Application.ScreenUpdating = True 
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-29 04:00:34

不知道筛选的工作表是如何设置的,但此方法会将母版中的工作表完全按照当前筛选的方式复制到新的工作簿中:

代码语言:javascript
运行
复制
Sub CopyInNewWB()
Dim wbO As Workbook, wbN As Workbook

On Error GoTo ErrHandler

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False

Set wbO = ActiveWorkbook
Set wbN = Workbooks.Add

wbO.Sheets("Customers").Copy wbN.Sheets(1)
wbO.Sheets("Orders").Copy wbN.Sheets(2)
wbO.Sheets("Country").Copy wbN.Sheets(3)
wbO.Sheets("ID").Copy wbN.Sheets(4)

wbN.Sheets("Sheet1").Delete
wbN.Sheets("Customers").Activate

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True

ErrHandler:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True

End Sub
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45920991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档