|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Sub 数据分析()
Dim ar As Variant
Dim d As Object, dc As Object
Dim br(), cr()
Set d = CreateObject("scripting.dictionary")
Set dc = CreateObject("scripting.dictionary")
With Sheets("sheet1")
r = .Cells(Rows.Count, 4).End(xlUp).Row
If r < 2 Then MsgBox "数据源为空!": End
ar = .Range("a1:e" & r)
End With
ReDim br(1 To UBound(ar), 1 To 6)
For i = 2 To UBound(ar)
If ar(i, 2) = "" Then ar(i, 2) = ar(i - 1, 2)
If ar(i, 3) = "" Then ar(i, 3) = ar(i - 1, 3)
zd = ar(i, 2) & "|" & ar(i, 3) & "|" & ar(i, 4)
t = d(zd)
If t = "" Then
k = k + 1
d(zd) = k
t = k
For j = 2 To 4
br(k, j - 1) = ar(i, j)
Next j
End If
br(t, 4) = br(t, 4) + 1
If ar(i, 5) <> "" Then
br(t, 5) = br(t, 5) + 1
br(t, 6) = br(t, 6) + 0
Else
br(t, 6) = br(t, 6) + 1
br(t, 5) = br(t, 5) + 0
End If
Next i
With Sheets("分析")
.[a1].CurrentRegion.Offset(1).Borders.LineStyle = 0
.[a1].CurrentRegion.Offset(1) = Empty
.[a2].Resize(k, UBound(br, 2)) = br
.[a2].Resize(k, UBound(br, 2)).Borders.LineStyle = 1
.[a1].CurrentRegion.Sort .[a1], 2, , , , , , 1 '第一个数据,表示升序还是降序,1为升序,2为降序,第二个数据表示标题行数
End With
MsgBox "ok!"
End Sub
|
|