我试图将一个工作表(Sheet1上的C39)中的值复制并粘贴到另一工作表(Sheet2上的B6至B18)范围内的下一个空单元格。这是我正在使用的代码。
Sheets("Sheet1").Range("C39").Copy
With Sheets("Sheet2").Range("B6:B18").End(xlUp).Offset(1)
.PasteSpecial Paste:=xlPasteValues
End With
End Sub
当我运行此宏时,它将继续覆盖Sheet2上的B6。理想情况下,它会看到B6中有一个值并将其粘贴到B7中,然后粘贴到B8中,等等。该怎么做才能纠正这一点?
答案 0 :(得分:1)
您可以设置彼此相等的值,而不是复制/粘贴。尽管在逐个单元的基础上,效率增益基本上不存在。在更大范围内,这将节省内存
STU,3,7000
答案 1 :(得分:0)
需要从 Sheet2 中的 B16 开始并向上看:
Sub dural()
Dim r1 As Range, r2 As Range
Set r1 = Sheets("Sheet1").Range("C39")
Set r2 = Sheets("Sheet2").Range("B16").End(xlUp).Offset(1, 0)
r1.Copy r2
End Sub
(类似于PasteSpecial)
答案 2 :(得分:0)
这将复制该值并将其粘贴到工作表2中的B列中。
Sub CopyPaste()
Dim lrow As Integer
Sheets("Sheet1").Range("C39").Copy - What cell value to copy
lrow = 18 'End row on Sheet2
For i = 6 To 18 'Loop from row 6 to 18
If Cells(i, 2) = "" Then 'If cell is empty then paste new value
Sheets("Sheet2").Range(Cells(i, 2), Cells(i, 2)).PasteSpecial xlPasteValues
End If
Next i
End Sub