|
发表于 2022-6-27 19:33
|
显示全部楼层
本楼为最佳答案
本帖最后由 我行我速2008 于 2022-6-27 19:50 编辑
Sub tt()
Dim Ar, R%, X%, He%, Num As Single
With ActiveSheet
.Range("A1").CurrentRegion.Interior.ColorIndex = 0
Ar = .Range("A1").CurrentRegion
R = UBound(Ar)
For X = 2 To R
He = He + Ar(X, 2)
Next X
For X = 2 To R
Ar(X, 3) = Round(Ar(X, 2) / He, 15)
Next X
.Range("A1").Resize(R, UBound(Ar, 2)) = Ar
For X = R To 2 Step -1
Num = Num + Ar(X, 3)
If Num = 0.368 Then
.Cells(X, 3).Interior.ColorIndex = 3
ElseIf Num > 0.368 Then
If Num - 0.368 - (0.368 - Application.Sum(.Range(.Cells(X + 1, 3), .Cells(R, 3)))) < 0 Then
.Cells(X, 3).Interior.ColorIndex = 3
Else
.Cells(X + 1, 3).Interior.ColorIndex = 3
End If
GoTo 100
End If
Next X
100:
End With
End Sub |
评分
-
查看全部评分
|