|
发表于 2012-11-20 11:28
|
显示全部楼层
本楼为最佳答案
本帖最后由 hwc2ycy 于 2012-11-20 11:35 编辑
- Sub 合并()
- Dim t#
- t = Timer
- Application.ScreenUpdating = False
- Worksheets("原表").Copy after:=Worksheets(Worksheets.Count)
- Range("a:a").Copy
- Range("a:a").Insert
- 'Application.CutCopyMode = False
- Range("a1") = "基站"
- Range("l:l").Copy
- Range("l:l").Insert
- Range("m1") = "基站数"
- Range("a1").CurrentRegion.Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlYes, SortMethod:=xlPinYin
- Dim arr
- Dim iStart&, iEnd&, i&, j&
- arr = Range("a1").CurrentRegion
- Application.DisplayAlerts = False
- j = UBound(arr) - 1
- For i = 2 To j
- iStart = i
- Do While (arr(i, 1) = arr(i + 1, 1))
- arr(iStart, 13) = arr(iStart, 13) + arr(i + 1, 13)
- i = i + 1
- If i > j Then Exit Do
- Loop
- If i <> iStart Then
- Cells(iStart, "m") = arr(iStart, 13)
- Range("a" & iStart & ":a" & i).Merge
- Range("m" & iStart & ":m" & i).Merge
- End If
- Next
- MsgBox "合并完成,一共费时" & Timer - t & "秒" & vbCr & "合并后的数据在工作表" & ActiveSheet.Name
- Application.ScreenUpdating = True
- Application.DisplayAlerts = True
- End Sub
复制代码 新建一个模块,代码复制过去,F5试试。 |
|