将范围从excel复制到新工作表中的另一个工作簿

时间:2016-05-19 09:54:20

标签: excel vba excel-vba

我对VBA宏非常陌生,并且自学了一些代码,但我正在努力完成我目前的工作,无法找到我想要的答案。

我想将一系列单元格(B3:N21)从一个工作簿复制到另一个工作簿" master"工作簿 - 看起来很简单 - 但是我想在每次运行宏时将其复制到主副本中的空白/新工作表中。

范围包含公式,我只需要复制到主工作簿的值。

对此的任何帮助将不胜感激。

由于

2 个答案:

答案 0 :(得分:0)

Worksheets("Sheet1").Range("C1:C5").Copy
Worksheets("Sheet2").activate
 Worksheets("Sheet2").Range("D1:D5").PasteSpecial _ 
 Operation:=xlPasteSpecialOperationAdd 
End With

我认为你只需要粘贴特殊,这是一个例子

答案 1 :(得分:0)

试试这个

Option Explicit

Sub main()

    Dim masterWb As Workbook
    Dim mySht As Worksheet

    Set mySht = ThisWorkbook.ActiveSheet '<~~ assuming you're copying values from active worksheet of the workbook the macro resides in
                                         '    beware: if you start the macro while the active sheet is not the one you want, this will lead to unespected results

    Set masterWb = Workbooks("Master") '<~~ Change "Master" with whatever name your master workbook must have
                                       '    beware: we're assuming "Master" workbook is already open, otherwise this line will throw an error

    With masterWb.Worksheets.Add
        .Range("B3:N21").Value = mySht.Range("B3:N21").Value
    End With

End Sub

介意评论

上面的代码可以减少到更简洁(并且自我解释),如下所示

Sub main2()    
    Workbooks("Master").Worksheets.Add.Range("B3:N21").Value = ThisWorkbook.ActiveSheet.Range("B3:N21").Value    
End Sub 

其中应用冗长代码的相同注释,即:

  • 假设您正在复制工作簿的活动工作表中的值,而宏位于

    要注意:如果您在活动工作表不是您想要的那个时启动宏,这将导致无法预料的结果

  • 使用您的主工作簿必须具有的任何名称更改“Master”

    要注意:我们假设“Master”工作簿已经打开,否则会抛出错误