sub:声明子过程的名称、参数以及构成其主体的代码。
语法:[Private/Public/Friend/Static] Sub name[(agrlist)]
[statements]
[exit Sub]
[Statements]
End Sub
Sub name()
Application.ScreenUpdating = False '屏幕数据不更新
Application.Calculation = xlManual '计算部分关闭自动计算,采用代码编写,目的在于提高运行效率
Set DicLA = CreateObject("scripting.dictionary") '创建一个名为DicLA的词典
Set DicLB = CreateObject("scripting.dictionary") '创建一个名为DicLB的词典
m = Sheets("Sheet1").[a1048576].End(xlUp).Row '将sheet1中最后不为空的行行名赋给m
RanDY = Sheets('Sheet1').UsedRange 'Sheet1中已使用的部分赋给RanDY
For i = 2 to m 'for循环语句,此处用于循环赋值
x = RanDY(i,1) '将第i行,第1列赋值给x
DicLA(x) = RanDY(i,1) '将x的值存储到字典DicLA中
DIcLB(x) = RanDY(i,2) '将第i行第2列的数据存储到字典DicLB中
Next i '循环叠加
n = Sheets("Sheet1").[a1048576].End(xlUp).Row '同上m赋值
For j = 2 To n '从2到n循环赋值给j
y = Range("b" & j) 'b行j列的数据赋值给y
If DicLA.exists(y) Then '如果字典DicLA中存在y,则
Range("ba" & j) = DicLB(y) '将DicLB中有y对应的值赋给ba行j列
End If 'If结束语句
Next j 'j循环叠加语句
Set DicLA = Nothing '清空字典DicLA
Set DicLB = Nothing '清空字典DicLB
Application.Calculation = xlAUmatomatic '将计算改为自动更新,恢复初值,与之前的xlManual相匹配
Application.SreenUpdating = True '屏幕数据自动更新
End Sub '子模块结束语