|
- Sub mysums()
- On Error Resume Next
- Dim x, y, m, arr, k, arr1(), ar(1 To 10000)
- Dim rg As Range, rng As Range
- Set rng = Selection
- If rng <> "" Then
- arr = rng
- Else
- MsgBox "请选择要计算的数据区域", vbInformation, "系统提示"
- Exit Sub
- End If
- ReDim arr1(1 To UBound(arr) + 1, 1 To 1)
- Set rg = Application.InputBox("请选择存放结果区域的首单元格", "选择目标区域", Type:=8)
- For x = 1 To UBound(arr)
- If arr(x, 1) > 0 Then
- arr1(x, 1) = "A"
- ElseIf arr(x, 1) = 0 Then
- arr1(x, 1) = "B"
- Else
- arr1(x, 1) = "C"
- End If
- Next x
- For y = 1 To UBound(arr1) - 1
- If arr1(y, 1) = arr1(y + 1, 1) Then
- m = m + 1
- Else
- k = k + 1
- If arr1(y, 1) = "C" Then
- ar(k) = "-" & m + 1
- Else
- ar(k) = m + 1
- End If
- m = 0
- End If
- Next y
- rg.Resize(UBound(ar)) = Application.Transpose(ar)
- End Sub
复制代码 我也来一个
|
评分
-
查看全部评分
|