例如,单击第二行,第二行变为黄色,单击第三行,第二行变回白色,同时第三行变为黄色。但是在我的代码中,第一次单击正常,第二次单击仅把前一行变回白色,第三次单击才能把另外一行变成黄色,代码如下:Option Explicit
Dim y As Integer
Dim lastrow As Integer
Dim color As Boolean 'False时变为黄色,True时变为白色Private Sub RowColor()
With MSHFlexGrid1
If color = False Then
.Row = .RowSel
For y = 0 To .Cols - 1
.Col = y
.CellBackColor = &HC0FFFF '变成黄色
Next y
lastrow = .Row
color = True
Else
.Row = lastrow
For y = 0 To .Cols - 1
.Col = y
.CellBackColor = &HFFFFFF '变成白色
Next y
color = False
End If
End With
End Sub请各位帮忙看看如何改进啊?
Dim y As Integer
Dim lastrow As Integer
Dim color As Boolean 'False时变为黄色,True时变为白色Private Sub RowColor()
With MSHFlexGrid1
If color = False Then
.Row = .RowSel
For y = 0 To .Cols - 1
.Col = y
.CellBackColor = &HC0FFFF '变成黄色
Next y
lastrow = .Row
color = True
Else
.Row = lastrow
For y = 0 To .Cols - 1
.Col = y
.CellBackColor = &HFFFFFF '变成白色
Next y
color = False
End If
End With
End Sub请各位帮忙看看如何改进啊?
MSHF.CellForeColor = &HC0FFFF '变成黄色
End SubPrivate Sub MSHF_LeaveCell()
MSHF.CellForeColor = &HFFFFFF '变成白色
End Sub
'i代表现在点的这一行
Dim n As Long 'n代表列
With Me.MSHFlexGrid1
For n = 1 To .Cols - 1
.Row = i
.Col = n
.CellBackColor = &HC0FFFF
If j > 0 And i <> j Then
.Row = j
.CellBackColor = &HFFFFFF
End If
Next n
j = i
End WithEnd SubPrivate Sub Form_Load()
With Me.MSHFlexGrid1
.Cols = 5
.Rows = 6
End With
End SubPrivate Sub MSHFlexGrid1_Click()
Call RowColor(Me.MSHFlexGrid1.Row, j)
Debug.Print j
End Sub