在学习 VBA 时,我已经使用论坛几个星期了。但现在我被困住了,需要帮助。所以这是我的问题:
我有一个工作簿,里面有几个工作表。为简单起见,我们假设我有两个工作表。一份包含大量原始数据材料,一份格式精美,将成为接收表。
原始数据表如下所示:我有 8 列,我需要检查每行(B 列和 E 列)中的两个条件并将 H 列中的值相加。B 列包含不同的名称,E 列包含工作状态,例如准备好或说话。我确实有大约 3.000 行和一组大约 20 个具有不同状态的不同名称。所以总的来说,我有 100 行,名称为“Smith”,状态为“talking”,没有特定的顺序。我现在需要总结每一行中的所有数字(H 列),其中包含名称“Smith”和状态“谈话”。之后,我想要名称(B 列),状态(E 列)和总和(H 列),将写入动态范围内同一工作簿的单元格,从 I3:K3 开始。我不得不承认我对这个完全一无所知。我真的希望你们能帮助我编写一些代码和/或指出我正确的方向。最重要的是,我希望您还可以解释您的代码的作用,以便我能够正确理解并学习。提前谢谢各位!
到目前为止,这是我的代码:
Private Sub SumNumbers()
Dim tbl As Worksheet
Dim x As Integer
Dim lrow As Long
Dim lastname As String
Dim astatus As String
Dim number As Integer
Dim counter As Integer
Set wb = ThisWorkbook
Set tbl = wb.Sheets("Sheet1")
lrow = tbl.Cells(Rows.Count, "B").End(xlUp).Row
lastname = tbl.Cells("C2:C" & lrow).Text
astatus = tbl.Cells("E2:E" & lrow).Text
number = tbl.Cells("H2:H" & lrow)
For x = 2 To lrow
If lastname = "Smith" And astatus = "Talking" Then
counter = counter + number
End If
Next x
End Sub