vb 关于MSFlexGrid1单元格变色的问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 08:55:45
Private Sub Command2_Click()
Dim r As Integer, c As Integer
For r = 1 To MSFlexGrid1.Rows - 1
For c = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Row = r
MSFlexGrid1.Col = c
If Val(MSFlexGrid1.Text) >= 0 And Val(MSFlexGrid1.Text) < 10 Then
MSFlexGrid1.CellBackColor = vbRed
End If
Next c
Next r
End Sub
用这个代码,我的单元格全部都变成了红色,当If Val(MSFlexGrid1.Text) >= 0 And Val(MSFlexGrid1.Text) < 10 Then 不成立时,我的单元格输出的是"---",为什么连有“---”这个的也变成了红色,难道---也是数字
请高手帮忙改一下

val()函数是将文本转成数值,---转换后值为0,所以是红色的,我前面给你的代码中对所有单元格都进行了赋值,所以单独用是正确的.

您在这里要使---不变红,就只有再加一个条件来区分
Private Sub Command2_Click()
Dim r As Integer, c As Integer
For r = 1 To MSFlexGrid1.Rows - 1
For c = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Row = r
MSFlexGrid1.Col = c
If Val(MSFlexGrid1.Text) >= 0 And Val(MSFlexGrid1.Text) < 10 and m.text<> "---" Then '注意这里有添加项
MSFlexGrid1.CellBackColor = vbRed
End If
Next c
Next r
End Sub