想要用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
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!