excel有很强大的数据统计功能,就连我数据库初始化数据都先转成excel形式,然后再ctrl + c, ctrl + v 贴进去,使用起来真是很方便。关于excel的书也非常的多,其中的大砖头也不少
但如果对excel不太熟悉的话,也会面对一些问题时束手无策。今天就遇到这样的一种情况,要合并数据,但合并的条件是以第一列的ID为准,也就是说第二列的数据会比较少。数据量比较大,10W以上,不可能纯手工。开始我想到导致数据库,再用程序处理,但后来一想这样做还要我去帮他处理剩下的数据,也不方便,于是就想用vba试试。其实VB是2004年学的,早就还给老师了
以下是写的代码,比较挫,边查边写
Sub export()
Sheets("Sheet1").Select
Dim cell_an, cell_bn, cell_a, cell_b
cell_an = 1
cell_bn = 1
While Worksheets(1).Cells(cell_an, 1).Value <> ""
cell_a = Worksheets(1).Cells(cell_an, 1).Value
cell_b = Worksheets(1).Cells(cell_bn, 2).Value
Worksheets(2).Cells(cell_an, 1).Value = cell_a
If cell_a < cell_b Or cell_a > cell_b Then
Worksheets(2).Cells(cell_an, 2).Value = 0
Worksheets(2).Cells(cell_an, 3).Value = 0
Worksheets(2).Cells(cell_an, 4).FormulaR1C1 = "=ABS(RC[-2]-RC[-1])"
cell_an = cell_an + 1
ElseIf cell_a = cell_b Then
Worksheets(2).Cells(cell_an, 2).Value = Worksheets(1).Cells(cell_bn, 3).Value
Worksheets(2).Cells(cell_an, 3).Value = Worksheets(1).Cells(cell_bn, 5).Value
Worksheets(2).Cells(cell_an, 4).FormulaR1C1 = "=ABS(RC[-2]-RC[-1])"
cell_an = cell_an + 1
cell_bn = cell_bn + 1
End If
Wend
End Sub