在平时工作生活中,经常需要按照一定的标准对应的数据求和。如在公司的考勤系统中。不同的类别对于不同的考勤分值。如下图所示:
1501057579164467.jpg
我们需要依据表一的标准,把表二相应文字对照换算为数值并求和。如下图
1501057595132998.jpg
一般我们都会用VLOOKUP函数和sum函数结合使用取值和求和。
这里我们介绍一下VBA的方法详细源码:Sub 替换求和() Dim A, D, E As Integer, F(1 To 7) As Single, H As Byte With Sheets("表一") A = .Range("A1").CurrentRegion End With With Sheets("表二") D = .Range("A1").CurrentRegion For E = 2 To UBound(D) For H = 2 To 8 If D(E, H) "" Then If Not IsError(Application.VLookup(D(E, H), A, 1, 0)) Then F(H - 1) = Application.VLookup(D(E, H), A, 2, 0) End If End If Next D(E, 9) = Application.sum(F): Erase F Next .Range("A1").Resize(UBound(D), UBound(D, 2)) = D End WithEnd Sub |