UserForm单击复选框以填充填充单元格VBA的偏移量

时间:2015-07-06 14:36:44

标签: excel vba excel-vba

我需要一个复选框,一旦点击,在最后一个客户名称的偏移处填写一个值(从B3开始的最后一个填充单元格)。有一个提交按钮,用于填写客户名称并计算以吨为单位的值。我们的想法是,在填写客户名称并计算吨数后,复选框应在相应的偏移单元格中写入ton值。然后userform将client和ton值移动到下一个可用的空单元格,这就是为什么我要基于最后一个客户端名称的复选框。我无法使用户形式检查最后一个空单元格并使用复选框填充它,因为有时上面的单元格将为空,具体取决于购买的材料。

enter image description here

这是我的代码(尝试使偏移使用客户端的单元格检查方法)

Private Sub CHKTALCO_Click()
  Dim T As Long

  Sheets("Sales").Activate
  ActiveSheet.Range("B3").Activate

  Do While Not IsEmpty(ActiveCell.Offset(T, 1)) = False
    T = T + 1
  Loop

  If CHKTALCO.Value = 1 Then
    ActiveCell.Offset(T, 1).Value = TBTONS.Value
  End If
End Sub

我一直在学习VBA,所以非常欢迎解释。

1 个答案:

答案 0 :(得分:0)

要查找任何特定列中最后使用的行,我使用:

lastRow = YourSheet.Cells(Yoursheet.Rows.Count, YourColumn).End(xlUp).Row

您可以用以下内容替换子程序:

Private Sub CHKTALCO_Click()

    dim lastRow as long
    dim sht As Worksheet

    set sht = Worksheets("Sales")

    lastRow = sht.Cells(sht.Rows.Count,"B").End(xlUp).Row

    If CHKTALCO.Value = 1 Then
        sht.Cells(lastRow, 3).Value = TBTONS.Value
    End If

End Sub

注意:使用.Activate的速度更快,因为没有必要。