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