我在 Excel 中编写 VBA,我有一个单元格,里面有一些数字,我有一个“购物车”范围,当我点击按钮时,我想将单元格值复制到“购物车”,但如果第一个购物车中的一行已经满了,它应该移动到下一行并执行此操作,直到找到一行空的并将其粘贴在那里。
我尝试这样做但遇到了问题
Sub Gumb1_Klikni()
Range("B1").Select
Selection.Copy
Range("J2").Select
If IsEmpty(ActiveCell) Then
Selection.PasteSpecial xlPasteAll
Else
Set nextcell = ActiveCell.Offset(1, 0)
Range(nextcell).Select
ActiveSheet.Paste
End If
End Sub
它给了我错误 1004“对象 '_Global' 的方法 'Range' 失败”在
Range(nextcell).Select
如果你Dim nextcell as Range
在你的开头定义Sub
,你需要做的就是:
nextcell.Select
但是,您可以使用下面的“Cleaner”版本,而无需使用Select
或Selection
:
Option Explicit
Sub Gumb1_Klikni()
Dim nextCell As Range
Range("B1").Copy
If IsEmpty(Range("J2")) Then
Range("J2").PasteSpecial xlPasteAll
Else
Set nextCell = Range("J2").Offset(1, 0)
nextCell.PasteSpecial
End If
End Sub
编辑 1:在 PO 澄清后:
Sub Gumb1_Klikni()
Dim LastRow As Long
' get last row with data in column "J"
LastRow = Cells(Rows.Count, "J").End(xlUp).Row
If LastRow < 1 Then LastRow = 1
Range("B1").Copy
Range("J" & LastRow + 1).PasteSpecial xlPasteAll
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句