我对VBA宏非常陌生,并且自学了一些代码,但我正在努力完成我目前的工作,无法找到我想要的答案。
我想将一系列单元格(B3:N21)从一个工作簿复制到另一个工作簿" master"工作簿 - 看起来很简单 - 但是我想在每次运行宏时将其复制到主副本中的空白/新工作表中。
范围包含公式,我只需要复制到主工作簿的值。
对此的任何帮助将不胜感激。
由于
答案 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”工作簿已经打开,否则会抛出错误