因为女朋友的课程关系,经常有一些统计数据要处理,之前她都用SPSS和Excel来做,碰到有些数据,处理起来还是比较麻烦的。比如上周的一个问题,她要从excel的两个sheet中比较两个列的内容,然后把相同的内容提出来,用sheet2的字段赋值sheet1的其它字段。可能问题比较抽象,其实就是两个dictionary,然后找到相同的key,并用第一个dictionary的value赋值第二个dictionary相同key的value。因为数据量比较大,她就问我有没有什么蛮力的方法。嗯,方法当然有很多,当时就想到了vbs,但是因为不熟悉,所以回来的时候熟悉了一下。其实,如果知道一些vbs的知识,然后在excel里使用它,的确可以达到事半功倍的效果。
这里就简单的帖一下上面问题的vbs的代码,好吧,我也懒得解释了,网上也有很多的教程嗯。
1 Sub mysub2()
2 Dim a As String
3 Dim r As Range
4 For Each ce In Sheet2.Range("B2:B20")
5 Set r = Sheet1.Range("B2:B20").Find([ce])
6 If Not r Is Nothing Then
7 Sheet1.Cells(r.Row, r.Column - 1).Value = Sheet2.Cells(r.Row, r.Column - 1).Value
8 End If
9 Next
10 End Sub
这里的数据是这样的:
sheet1 sheet2
其实vbs真的不难,有些编程经验的人学起来会很快的,它的好处就不说了,显而易见,对于大数据量的数据如果进行人工处理的话,工作量简直不能想象。