Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 宏将范围复制到新工作簿_Excel_Vba - Fatal编程技术网

Excel 宏将范围复制到新工作簿

Excel 宏将范围复制到新工作簿,excel,vba,Excel,Vba,如何创建执行以下操作的宏: 将A2:AT10000范围从一个工作簿复制到新工作簿的第一页 返回初始工作簿,在代码为Sheet11的工作表中选择A6:HF10000范围 将所选内容粘贴到步骤1中创建的工作簿的新添加工作表(工作表2) 我得到一个运行时错误424,调试时,突出显示的行是 sheet 11.范围(“A6:HF10000”)。选择 Sub Copy2RangesNewWorkbook() ' ' Copy2RangesNewWorkbook Macro ' Dim pvt_wbk_New

如何创建执行以下操作的宏:

  • 将A2:AT10000范围从一个工作簿复制到新工作簿的第一页
  • 返回初始工作簿,在代码为Sheet11的工作表中选择A6:HF10000范围
  • 将所选内容粘贴到步骤1中创建的工作簿的新添加工作表(工作表2)
  • 我得到一个运行时错误424,调试时,突出显示的行是
    sheet 11.范围(“A6:HF10000”)。选择

    Sub Copy2RangesNewWorkbook()
    '
    ' Copy2RangesNewWorkbook Macro
    '
    Dim pvt_wbk_New As Excel.Workbook
    Dim pvt_xls_Current As Excel.Worksheet
    
    With pvt_xls_Current
    ActiveSheet.Range("A2:AT10000").Select
    Selection.Copy
    End With
    
    Set pvt_wbk_New = Application.Workbooks.Add
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    With pvt_xls_Current
    Sheet11.Range("A6:HF10000").Select
    Selection.Copy
    End With
    
    With pvt_wbk_New
    Sheets.Add After:=Sheets(Sheets.Count)
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End With
    End Sub
    
    尝试:


    请注意Sheet.PasteSpecial和Range.PasteSpecial之间的差异,正如Sid在这个问题中指出的,最后一件事是:如果我更改了“Sheet 11”的名称,宏将不再工作。我想使用工作表的代号,即Sheet11。pvt_wb_Current.Sheets(“Sheet11”).Range(“A6:HF10000”).Copy我试图将此行更改为:pvt_wb_Current.Sheet11.Range(“A6:HF10000”).Copy,但未成功。我可能得给它下定义?如果你能让我知道,那就太好了,因为除了我之外,其他人肯定会改变这张表的名称。谢谢
    Sub Copy2RangesNewWorkbook()
    
    Dim pvt_wb_New As Excel.Workbook
    Dim pvt_ws_NewTarget1 As Worksheet
    Dim pvt_ws_NewTarget2 As Worksheet
    Dim pvt_ws_Current As Worksheet
    Dim pvt_wb_Current As Workbook
    
    Set pvt_ws_Current = ActiveSheet
    Set pvt_wb_Current = ActiveWorkbook
    Set pvt_wb_New = Application.Workbooks.Add
    Set pvt_ws_NewTarget1 = pvt_wb_New.Sheets(1)
    Set pvt_ws_NewTarget2 = pvt_wb_New.Worksheets.Add
    
    pvt_ws_Current.Range("A2:AT10000").Copy
    pvt_ws_NewTarget1.Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    
    pvt_wb_Current.Sheets("Sheet11").Range("A6:HF10000").Copy
    pvt_ws_NewTarget2.Range("A6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    
    End Sub