谁能够给我解答一下这个excel VBA代码的含义呢?

Sub 进货单据查询()
Dim i, l, m, n
Sheet21.Cells.Clear
l = UserForm15.ComboBox1.Value
i = Sheet5.Range("a65536").End(xlUp).Row
m = Application.WorksheetFunction.CountIf(Sheet5.Range("m3:m" & i), l)
Call 进货清空
n = Sheet12.Range("g65536").End(xlUp).Row + 1

If l <> "" And m > 0 Then

Sheet5.Range("a2:n" & Sheet5.Range("a65536").End(xlUp).Row).AutoFilter field:=13, Criteria1:=l
Sheet5.Range("a2:n" & Sheet5.Range("a65536").End(xlUp).Row).Copy Sheet21.Range("a1")

If Sheet21.Range("a65536").End(xlUp).Row - 1 <= Sheet12.Range("b65536").End(xlUp).Row - 7 Then

For i = 2 To Sheet21.Range("a65536").End(xlUp).Row
Sheet12.Range("c" & n) = Sheet21.Range("b" & i)
Sheet12.Range("d" & n) = Sheet21.Range("c" & i)
Sheet12.Range("e" & n) = Sheet21.Range("d" & i)
Sheet12.Range("f" & n) = Sheet21.Range("e" & i)
Sheet12.Range("g" & n) = Sheet21.Range("f" & i)
Sheet12.Range("h" & n) = Sheet21.Range("g" & i)
Sheet12.Range("i" & n) = Sheet21.Range("h" & i)
Sheet12.Range("j" & n) = Sheet21.Range("n" & i)
Sheet12.Range("d3") = Sheet21.Range("i" & i)
Sheet12.Range("f3") = Sheet21.Range("j" & i)
Sheet12.Range("i3") = Sheet21.Range("a" & i)
Sheet12.Range("d" & Sheet12.Range("b65536").End(xlUp).Row) = Sheet21.Range("k" & i)
Sheet12.Range("j" & Sheet12.Range("b65536").End(xlUp).Row) = Sheet21.Range("l" & i)
Sheet12.Range("i2") = Sheet21.Range("m" & i)
n = n + 1
Next
MsgBox "查询完毕!"
Else
MsgBox "数据过大,请增加单据行数!"

End If

Sheet5.Range("a2:n" & Sheet5.Range("a65536").End(xlUp).Row).AutoFilter
Else
MsgBox "您输入的单号错误!"
End If

End Sub

Sub 进货单据查询()
Dim i, l, m, n
Sheet21.Cells.Clear 工作表单元格清空
l = UserForm15.ComboBox1.Value 变量l 等于列表框的值
i = Sheet5.Range("a65536").End(xlUp).Row 变量i等于A列最大非空单元格数
m = Application.WorksheetFunction.CountIf(Sheet5.Range("m3:m" & i), l) 工作表统计函数,根据Sheet5.Range("m3:m" & i)统计

Call 进货清空 调用过程进货清空
n = Sheet12.Range("g65536").End(xlUp).Row + 1 变量n等于G列最大非空单元格数

If l <> "" And m > 0 Then 如果I=“”或者m对于0

Sheet5.Range("a2:n" & Sheet5.Range("a65536").End(xlUp).Row).AutoFilter field:=13, Criteria1:=l 这里是一筛选条件,不不熟悉,可参考https://docs.microsoft.com/zh-cn/office/vba/api/excel.range.autofilter
Sheet5.Range("a2:n" & Sheet5.Range("a65536").End(xlUp).Row).Copy Sheet21.Range("a1") 单元区域复制到以sheet21.Range("a1")

If Sheet21.Range("a65536").End(xlUp).Row - 1 <= Sheet12.Range("b65536").End(xlUp).Row - 7 Then 如果A列最大非空行小于b列最大非空行减去7 ,则运行下面循环代码

For i = 2 To Sheet21.Range("a65536").End(xlUp).Row 循环
Sheet12.Range("c" & n) = Sheet21.Range("b" & i) 单元格区域赋值
Sheet12.Range("d" & n) = Sheet21.Range("c" & i)
Sheet12.Range("e" & n) = Sheet21.Range("d" & i)
Sheet12.Range("f" & n) = Sheet21.Range("e" & i)
Sheet12.Range("g" & n) = Sheet21.Range("f" & i)
Sheet12.Range("h" & n) = Sheet21.Range("g" & i)
Sheet12.Range("i" & n) = Sheet21.Range("h" & i)
Sheet12.Range("j" & n) = Sheet21.Range("n" & i)
Sheet12.Range("d3") = Sheet21.Range("i" & i)
Sheet12.Range("f3") = Sheet21.Range("j" & i)
Sheet12.Range("i3") = Sheet21.Range("a" & i)
Sheet12.Range("d" & Sheet12.Range("b65536").End(xlUp).Row) = Sheet21.Range("k" & i)
Sheet12.Range("j" & Sheet12.Range("b65536").End(xlUp).Row) = Sheet21.Range("l" & i)
Sheet12.Range("i2") = Sheet21.Range("m" & i)
n = n + 1
Next
MsgBox "查询完毕!" 弹出信息框
Else
MsgBox "数据过大,请增加单据行数!" 弹出信息框

End If

Sheet5.Range("a2:n" & Sheet5.Range("a65536").End(xlUp).Row).AutoFilter
Else
MsgBox "您输入的单号错误!"
End If

End Sub
温馨提示:答案为网友推荐,仅供参考
相似回答