vba处理Excel数据问题

vba处理Excel数据问题

想要用vba实现在一列数值中将第一个小于0的数值和最后一个大于0的值看作一个区间,并判断当这个区间的存在的名称不一致时,将区间标记为黄色(图中标记绿色是为了区分每个区间,判断完区间最后一个正数后,当下一次出现负数再重新判断),如下图

img

Sub setCellCValue()
   rownum = ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).row
   For i = 2 To rownum
     If Sheets(1).Cells(i, "B") < 0 Then
        r = True
        lasta = Sheets(1).Cells(i, "A")

        For j = i + 1 To rownum
          cella = Sheets(1).Cells(j, "A")
          If cella <> lasta Then
            r = False
          End If
          If Sheets(1).Cells(j, "B") > 0 And Sheets(1).Cells(j + 1, "B") < 0 Then
            Exit For
          End If
          lasta = cella
        Next
        If j > rownum Then j = rownum
        If r = False Then
          For k = i To j
            Range("A" & k & ":B" & k).Interior.Color = vbYellow
          Next
        End If
        'Sheets(1).Cells(j, "C") = r
        i = j
     End If
   Next
 
End Sub

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632