复制到单元格而不必先选择它们

时间:2015-07-13 08:08:35

标签: excel vba excel-vba

我目前正在尝试使用VBA将一些单元格从一个位置复制到另一个位置,因为我是VBA的新手,我想知道是否有人可以帮助我提高我的代码效率我知道必须有一种方法复制到单元格而不必选择单元格然后复制到单元格

For i = 1 To dataSheet.Range("A" & dataSheet.Rows.Count).End(xlUp).Row
    dataSheet.Range("A" & i & ":" & "CT" & i).Copy
    Set rCell = dataSheet.Range("C" & i)
    pasteSheet.Activate
    If rCell = condition1 Then
        With ActiveSheet
            .Range("CU" & rowLoop2).Select
            ActiveSheet.paste
        End With

1 个答案:

答案 0 :(得分:0)

您有2个选项。使用.PasteSpecial方法,或者您只需引用原始范围并将新范围设置为它的值。

.Range("CU" & rowLoop2).PasteSpecial Paste:=xlPasteAll

使用设置值选项,您必须定义值应填充的整个范围。

Range("A3:E3").Value = Range("A1:E1").Value

如果您刚刚使用Range("A3").Value = Range("A1:E1").Value,则只会填充单元格A3,并且它会从单元格A1获取值。希望这会有所帮助。

编辑:值得注意的是,您不必更改要粘贴的工作表。您的代码可以修改为以下内容:

With dataSheet
    For i = 1 To .Range("A" & .Rows.Count).End(xlUp).Row
        .Range("A" & i & ":" & "CT" & i).Copy
        Set rCell = .Range("C" & i)
        If rCell = condition1 Then
            pasteSheet.Range("CU" & rowLoop2).PasteSpecial Paste:=xlPasteAll
        End If
    Next i
End With