VBA宏将工作表复制并粘贴到新工作簿中

时间:2017-08-28 14:08:03

标签: excel vba excel-vba

我每天都会做一份报告,我必须将几张纸复制并粘贴到一个名为Report(今天的约会)的新工作簿中。

在我的报告中,我有4张:客户,订单,国家/地区,ID。

客户和国家/地区是主文件中的简单复制和粘贴,但订单和ID是来自主文件中我的一张工作表的过滤数据。订单被过滤到"完成"而ID是ID 200和500以外的所有内容。

我尝试根据此处找到的解决方案构建宏: CPP Rest SDK

复制和粘贴有效,但我无法复制和粘贴多张工作表/重命名工作表并过滤数据。

编辑:

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

1 个答案:

答案 0 :(得分:1)

无法确定如何设置过滤后的工作表,但此方法会将主工作表中的工作表完全复制到当前已过滤到新工作簿的方式:

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