这段日子公司里的一个朋友正在整理一批客户资料,其中有项工作就是要对这些数据中相同记录中 数据2项下的数据进行整理 将数据调整至有效合同期内的单元格内,由于该部分记录有上千条之多,所以想借助vba帮助能不能将这个繁琐的重复劳动让程序来加以解决,(由于本人vba处于初级入门水平,所以写的程序也比较简单、比较初级,望大家谅解。)
先上图 (由于原先对这部分的数据维护不是很及时,所以在重复记录项内,会存在已经在有效的记录项上录入有效数据,也有可能在重复记录项内分别录入了几个不同的数据,等等情况,但是唯一一点值得庆幸的是不存在重复录入数据的问题。)
vba小程序_第1张图片
了解了这个情况后我按照公司名称对数据进行了个排序,并且通过对协议终止日期的观察,以最近一期的日期2010-6-30作为判断是否为有效记录的依据,借助以上几个条件,编写了下面一段小程序,初步能够解决这个问题。让大家不屑指教
Public Sub shawn()
Dim i As Integer
Dim sy As Integer
Dim sun
On Error Resume Next
For i = 2 To Range("a65536").End(xlUp).Row
  For sy = 1 To 5
   If Cells(i, 1) = Cells(i + sy, 1) Then
    Cells(i, 5) = Cells(i, 5) + Cells(i + sy, 5)
    Cells(i + sy, 5) = 0
    End If
    Next sy
    Next i
For i = 2 To Range("a65536").End(xlUp).Row
   If Cells(i, 3) - Cells(1, 6) > 0 And Cells(i, 5) >0 Then
    Cells(i, 5).Font.ColorIndex = 3
    End If
    Next i
End Sub
由于在这些记录中,重复的记录数最大不会超过5条,所以我就偷懒了下用一个5次的循环来进行判断;并且通过字体的颜色变化对有效的数据值进行标识。
vba小程序_第2张图片