Excel的VBA学习

来源:互联网 发布:天津统计局人口数据 编辑:程序博客网 时间:2024/05/01 16:18

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 '子模块结束语



原创粉丝点击