VBA 将值粘贴到范围内的下一个空单元格
VBA Paste Value to Next Empty Cell in a Range
我正在尝试将一个 sheet(Sheet1 上的 C39)中的值复制并粘贴到另一个 sheet(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 等。我该怎么做才能更正此问题?
需要从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)
您可以设置彼此相等的值而不是 copy/paste。尽管在逐个电池的基础上,效率增益基本上是不存在的。在更大的范围内,这将节省内存
Sub dural()
Sheets("Sheet2").Range("B16").End(xlUp).Offset(1, 0).Value = Sheets(“Sheet1”).Range(“C39”).Value
End Sub
这将复制值并将其粘贴到 Sheet 中的 B 列 2.
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
我正在尝试将一个 sheet(Sheet1 上的 C39)中的值复制并粘贴到另一个 sheet(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 等。我该怎么做才能更正此问题?
需要从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)
您可以设置彼此相等的值而不是 copy/paste。尽管在逐个电池的基础上,效率增益基本上是不存在的。在更大的范围内,这将节省内存
Sub dural()
Sheets("Sheet2").Range("B16").End(xlUp).Offset(1, 0).Value = Sheets(“Sheet1”).Range(“C39”).Value
End Sub
这将复制值并将其粘贴到 Sheet 中的 B 列 2.
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