如果

时间:2017-06-04 17:52:08

标签: excel vba excel-vba

所以我有一个带有一些数字的单元格,我有一个购物车"范围和我当我点击按钮时我想将单元格值复制到" cart"但是如果购物车中的第一行已经满了,它应该移动到下一行并执行此操作,直到找到一个空的行并将其粘贴到那里。

我试图这样做但是遇到了问题

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(nextcell).Select

1 个答案:

答案 0 :(得分:1)

如果您要在Dim nextcell as Range的开头定义Sub,那么您需要做的就是:

nextcell.Select

但是,您可以使用下面的“清洁”版本,而无需使用SelectSelection

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
在PO澄清之后

编辑1:

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