关于#vba#进行判断的问题

img

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

示例如下

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
        Sheets(1).Cells(j, "C") = r
        i = j
     End If
   Next
 
End Sub

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