VBA值粘贴到范围中的下一个空单元格

时间:2018-10-09 18:16:04

标签: excel vba copy-paste

我试图将一个工作表(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中,等等。该怎么做才能纠正这一点?

3 个答案:

答案 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