|
可能附件太大,我的权限上传不了,传个代码吧。- Sub tt()
- xt = Timer
- Set d = CreateObject("scripting.dictionary")
- Set d1 = CreateObject("scripting.dictionary")
-
- r = Sheet1.Cells(Sheet1.Rows.Count, 1).End(3).Row '根据Sheet1计算C列到L列
- arr = Sheet1.Range("a1:h" & r)
- For i = 2 To UBound(arr)
- x = arr(i, 1) & arr(i, 7) '名称+买卖盘性质
- d(x) = d(x) + 1
- d1(x) = d1(x) + arr(i, 5)
- Next
- brr = [a1].CurrentRegion
- ReDim bbrr(1 To UBound(brr) - 1, 1 To 10)
- For i = 2 To UBound(brr)
- x1 = brr(i, 2) & "买盘"
- x2 = brr(i, 2) & "卖盘"
- x3 = brr(i, 2) & "中性盘"
- p = i - 1
- bbrr(p, 1) = d1(x1): bbrr(p, 8) = d(x1) '买盘数/重复数
- bbrr(p, 2) = d1(x2): bbrr(p, 9) = d(x2) '卖盘数/重复数
- bbrr(p, 3) = d1(x3): bbrr(p, 10) = d(x3) '中性盘数/重复数
- s = bbrr(p, 1) + bbrr(p, 2) + bbrr(p, 3): bbrr(p, 4) = s '总盘数
- If s > 0 Then
- bbrr(p, 5) = bbrr(p, 1) / s '买占比
- bbrr(p, 6) = bbrr(p, 2) / s '卖占比
- bbrr(p, 7) = bbrr(p, 3) / s '中占比
- End If
- Next
- [C2].Resize(p, 10) = bbrr
-
- d.RemoveAll '根据Sheet2计算M列到Z列
- r = Sheet2.Cells(Sheet2.Rows.Count, 1).End(3).Row
- arr = Sheet2.Range("a1:ad" & r)
- For i = 3 To UBound(arr)
- Debug.Print i
- For j = 6 To UBound(arr, 2)
- x = Val(arr(i, 2)) & UCase(arr(1, j))
- d(x) = d(x) + Val(arr(i, j))
- Next
- Next
- ReDim crr(1 To UBound(brr) - 1, 1 To UBound(brr, 2))
- For i = 2 To UBound(brr)
- For j = 13 To UBound(brr, 2)
- p = i - 1: q = j - 12
- x = Val(brr(i, 1)) & brr(1, j)
- crr(p, q) = d(x)
- Next
- Next
- [M2].Resize(p, q) = crr
- MsgBox "耗时" & Timer - xt & "秒"
- End Sub
复制代码 |
|