【Excel VBA字典实例:更新货品单价】需求:月末盘点的时候,需要获取货品最后的进货单价,采用字典确定唯一性是比较简单的方法 。

数据源有2万多行

盘点表有多行多列
第一步:处理数据源数据 , 将品名作为关键字,最后一批次的单价作为条目写入字典 。
'字典后期绑定
Set d = CreateObject("scripting.dictionary")
arr = Sheets("数据").Range("A1").CurrentRegion
For i = 2 To UBound(arr)
'd.Add arr(i, 1), arr(i, 2) '将第一个单价写入字典
d(arr(i, 1)) = arr(i, 2) '将最后一个单价写入字典
Next i
第二步:通过观察上面的盘点表结构,每8列出现一次品名和单价,利用循环解决 。
For i = 5 To 100
For j = 2 To 56 Step 8
Set 品名 = Cells(i, j)
Set 单价 = Cells(i, j3)
If d.exists(品名.Value) And 单价 <> d(品名.Value) Then
单价 = d(品名.Value)
单价.Font.Color = vbRed
End If
Next j
Next i
处理结果如下图:更新单价 , 并用标记为红色 。

代码执行效果
