我目前正在尝试使用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
答案 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