Sub Vlookup_Click() Dim a,d As Object,i& With Sheets("nbr") a = .Range(.[a2],.[b65536].End(3))Sub Vlookup_Click()Dim a,d As Object,i&With Sheets("nbr")a = .Range(.[a2],.[b65536].End(3))End WithSet d = CreateObject("Scripting.Dictionary")For i = 1 To

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 07:07:14

Sub Vlookup_Click() Dim a,d As Object,i& With Sheets("nbr") a = .Range(.[a2],.[b65536].End(3))Sub Vlookup_Click()Dim a,d As Object,i&With Sheets("nbr")a = .Range(.[a2],.[b65536].End(3))End WithSet d = CreateObject("Scripting.Dictionary")For i = 1 To
Sub Vlookup_Click() Dim a,d As Object,i& With Sheets("nbr") a = .Range(.[a2],.[b65536].End(3))
Sub Vlookup_Click()
Dim a,d As Object,i&
With Sheets("nbr")
a = .Range(.[a2],.[b65536].End(3))
End With
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(a)
d(a(i,1)) = a(i,2)
Next
With Sheets("total")
a = .Range(.[a2],"b" & .[a65536].End(3).Row)
For i = 1 To UBound(a)
a(i,2) = d(a(i,1))
Next
.[a2].Resize(i - 1,2) = a
End With
End Sub 懂Excel的解释一下

Sub Vlookup_Click() Dim a,d As Object,i& With Sheets("nbr") a = .Range(.[a2],.[b65536].End(3))Sub Vlookup_Click()Dim a,d As Object,i&With Sheets("nbr")a = .Range(.[a2],.[b65536].End(3))End WithSet d = CreateObject("Scripting.Dictionary")For i = 1 To
Sub Vlookup_Click()'这个是过程名,自定义的,只要自己喜欢,什么都可以.Sub是过程标志,关键词.Vlookup是按列查找的意思.Click是鼠标单击.
    Dim a, d As Object, i&‘定义变量,a、d是对象类型,i是整形
    With Sheets("nbr") ’对名为nbr的有进行操作
        a = .Range(.[a2], .[b65536].End(3))‘为a赋值为单元格对象,区域为从A2到B列最后一个有效的单元格..[b65536]是B列的极限单元格,即B列最后一个单元格.End(3)的意思相当于你选中从B列最后一个单元格,再同时按下ctrl+Home键.其中的括号中的3,是Up的意思,向上.
    End With
    Set d = CreateObject("Scripting.Dictionary")'创建键值关联库对象,就是一种特殊的数组,下标是a(i, 1))的值,它的值却可以是a(i, 2)
    For i = 1 To UBound(a)’区域a也是数组,对其进行数组类操作
        d(a(i, 1)) = a(i, 2)'这种赋值方便统计,   数组d 以a列值为下标,以b列中相应的行的值为值.
    Next
    With Sheets("total")‘操作名为total的表 进行统计
        a = .Range(.[a2], "b" & .[a65536].End(3).Row)’a的值为区域A2到Bn
        For i = 1 To UBound(a)
            a(i, 2) = d(a(i, 1))‘对区域中第二列进行赋值,原理是表total中的a列的值如果与表nbr中a列的值相同,则把d(a(i, 1)的值,也就是表nbr中b列的值,给表total中的b列.说穿了就是首列查询.返回第二列的值.
        Next
        .[a2].Resize(i - 1, 2) = a’将a的值显示在[a2]偏移后的单元格里 填充 也就是a = .Range(.[a2], "b" & .[a65536].End(3).Row)这个区域
    End With
End Sub 
本例仅是查找引用,可用于项目个数统计.
张志晨