每个项目都有一个按钮,可以将数量添加到另一个订单列表偏移不起作用

时间:2017-10-18 16:20:53

标签: excel vba excel-vba

我为每个产品系列设置了一个命令按钮。总的来说,我在Sheet 1上有20多个按钮。

如果我点击数量超过1的任何一个,产品名称将被复制并粘贴到订单列表表。

我尝试使用偏移将其粘贴到订单列表中A2的A行下的空白列。

然而,在我点击另一个按钮后,它只替换A2而不是粘贴到A3。

前两个按钮的代码详细信息如下(所有20个按钮应该是相同的代码,因为它们不会按顺序点击。只要它拿起空白列,它应该没问题):

Private Sub CommandButton1_Click()

    Dim wb As Workbook
    Dim wsSource As Worksheet
    Dim wsDest As Worksheet

    Set wb = ActiveWorkbook
    Set wsSource = wb.Sheets("Sheet1")  
    Set wsDest = wb.Sheets("Order List")

    'Stop if report not filled in fully
    If wsSource.Range("G28").Value < 1 Then
        MsgBox "Please Amend Quantity"
        Exit Sub
    End If

    wsSource.Range("B28").Copy wsDest.Range("A1").Offset(1,0)
    wsDest.Range("A:D").EntireColumn.AutoFit

End Sub

Private Sub CommandButton2_Click()

    Dim wb As Workbook
    Dim wsSource As Worksheet
    Dim wsDest As Worksheet

    Set wb = ActiveWorkbook
    Set wsSource = wb.Sheets("Sheet1")  
    Set wsDest = wb.Sheets("Order List")

    'Stop if report not filled in fully
    If wsSource.Range("G28").Value < 1 Then
        MsgBox "Please Amend Quantity"
        Exit Sub
    End If

    wsSource.Range("B28").Copy wsDest.Range("A1").Offset(1,0)
    wsDest.Range("A:D").EntireColumn.AutoFit

End Sub

请告诉我。非常感谢

1 个答案:

答案 0 :(得分:1)

使用此代替,它将找到最后使用的单元格,然后向下移动到下一个单元格(您的代码永远不会更新目标单元格,它固定在A2)。这些按钮是什么类型的 - 你应该能够避免重复你的代码20次。

wsSource.Range("B28").Copy wsDest.Range("A" & rows.count).end(xlup).Offset(1,0)