Sub Macro1() Dim erow As Integer, Fsbill As String, r As Variant erow = Sheets("汇总").[a65536].End(xlUp).Row + 1 Fsbill = Range("i7") If Application.CountIf(Sheets("汇总").Range("c:c"), Fsbill) > 0 Then MsgBox "采购单号" & Fsbill & " was already exists !!!!" Exit Sub End If For r = 19 To 24 If Cells(r, 2) <> "" Then Sheets("汇总").Cells(erow, 1) = Month(Cells(8, 9)) Sheets("汇总").Cells(erow, 2) = Cells(8, 9) Sheets("汇总").Cells(erow, 3) = Cells(7, 9) Sheets("汇总").Cells(erow, 4) = Cells(7, 3) Sheets("汇总").Cells(erow, 5) = Cells(9, 9) Sheets("汇总").Cells(erow, 6) = Cells(10, 9) Sheets("汇总").Cells(erow, 7) = Cells(r, 2) Sheets("汇总").Cells(erow, 8) = Cells(r, 4) Sheets("汇总").Cells(erow, 9) = Cells(r, 5) Sheets("汇总").Cells(erow, 10) = Cells(r, 6) Sheets("汇总").Cells(erow, 11) = Cells(r, 7) Sheets("汇总").Cells(erow, 12) = Cells(r, 8) erow = erow + 1 End If Next Sheets("汇总").Select MsgBox "OK" End Sub这段VBA代码的作用,并详细分析每一行代码的作用
时间: 2024-01-24 14:19:33 浏览: 26
这段VBA代码的作用是将一个采购单的信息汇总到一个名为“汇总”的工作表中。具体来说,它首先检查采购单号是否已经存在于汇总工作表中,如果是,则弹出消息框并退出子程序。否则,它将从原始采购单中提取必要的信息,并将其写入汇总工作表中。
现在,我们逐行分析每一行代码的作用:
1. Dim erow As Integer, Fsbill As String, r As Variant
这一行定义了三个变量,“erow”表示下一个要写入的行号,“Fsbill”表示采购单号,“r”表示原始采购单中的行号。
2. erow = Sheets("汇总").[a65536].End(xlUp).Row + 1
这一行确定了下一个要写入的行号。它首先找到最后一个非空单元格的行号,然后将其加一。
3. Fsbill = Range("i7")
这一行将采购单号保存为一个字符串变量。
4. If Application.CountIf(Sheets("汇总").Range("c:c"), Fsbill) > 0 Then
这一行使用CountIf函数检查汇总工作表中是否已经存在具有相同采购单号的记录。
5. MsgBox "采购单号" & Fsbill & " was already exists !!!!" Exit Sub
如果存在具有相同采购单号的记录,则显示一个消息框并退出子程序。
6. For r = 19 To 24
这一行循环遍历原始采购单中的行号,这些行包含必要的信息。
7. If Cells(r, 2) <> "" Then
这一行检查原始采购单中当前行是否包含必要的信息。
8. Sheets("汇总").Cells(erow, 1) = Month(Cells(8, 9))
这一行将汇总表中的“月份”列设置为采购单中的月份。
9. Sheets("汇总").Cells(erow, 2) = Cells(8, 9)
这一行将汇总表中的“日期”列设置为采购单中的日期。
10. Sheets("汇总").Cells(erow, 3) = Cells(7, 9)
这一行将汇总表中的“供应商”列设置为采购单中的供应商。
11. Sheets("汇总").Cells(erow, 4) = Cells(7, 3)
这一行将汇总表中的“采购员”列设置为采购单中的采购员。
12. Sheets("汇总").Cells(erow, 5) = Cells(9, 9)
这一行将汇总表中的“部门”列设置为采购单中的部门。
13. Sheets("汇总").Cells(erow, 6) = Cells(10, 9)
这一行将汇总表中的“项目”列设置为采购单中的项目。
14. Sheets("汇总").Cells(erow, 7) = Cells(r, 2)
这一行将汇总表中的“物料名称”列设置为采购单中的物料名称。
15. Sheets("汇总").Cells(erow, 8) = Cells(r, 4)
这一行将汇总表中的“单位”列设置为采购单中的单位。
16. Sheets("汇总").Cells(erow, 9) = Cells(r, 5)
这一行将汇总表中的“数量”列设置为采购单中的数量。
17. Sheets("汇总").Cells(erow, 10) = Cells(r, 6)
这一行将汇总表中的“单价”列设置为采购单中的单价。
18. Sheets("汇总").Cells(erow, 11) = Cells(r, 7)
这一行将汇总表中的“总价”列设置为采购单中的总价。
19. Sheets("汇总").Cells(erow, 12) = Cells(r, 8)
这一行将汇总表中的“备注”列设置为采购单中的备注。
20. erow = erow + 1
这一行将下一个要写入的行号加一,以准备写入下一条记录。
21. End If
这一行结束了if语句块,表示完成了当前行的处理。
22. Next
这一行结束了for循环,表示已经处理完原始采购单中的所有行。
23. Sheets("汇总").Select
这一行将汇总工作表设置为当前激活的工作表。
24. MsgBox "OK"
这一行显示一个消息框,表示成功完成了子程序。