我需要一个复选框,一旦点击,在最后一个客户名称的偏移处填写一个值(从B3
开始的最后一个填充单元格)。有一个提交按钮,用于填写客户名称并计算以吨为单位的值。我们的想法是,在填写客户名称并计算吨数后,复选框应在相应的偏移单元格中写入ton值。然后userform将client和ton值移动到下一个可用的空单元格,这就是为什么我要基于最后一个客户端名称的复选框。我无法使用户形式检查最后一个空单元格并使用复选框填充它,因为有时上面的单元格将为空,具体取决于购买的材料。
这是我的代码(尝试使偏移使用客户端的单元格检查方法)
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,所以非常欢迎解释。
答案 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
的速度更快,因为没有必要。