EXCEL用vba如何在表中,当点击任意一个单元格,这个表中与点击单元格内容相同的所有单元格的背景色改变。

如题所述

告诉楼主一个不幸的消息,点击任意单元格,更改背景色可以做,但程序会进入死循环,因为每次更改某个单元格的颜色时,相当于又触发了一次点击单元格的事件。
如果是输入某个值,或更改某个值,相同的值的单元格变色,这个可以做。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strX As String
Dim X, Y, I, J, C As Long
On Error GoTo Err
Randomize
C = Int(Rnd() * 56) + 1
X = ActiveCell.SpecialCells(xlLastCell).Row
Y = ActiveCell.SpecialCells(xlLastCell).Column
strX = Target.Value

For I = 1 To X
For J = 1 To Y
If Cells(I, J) = strX Then Cells(I, J).Interior.ColorIndex = C
Next J
Next I
Exit Sub
Err:
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-26
简单代码如下:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.Color = xlNone
Set Arr = Target
If Target.Count = 1 Then
Target.Interior.Color = vbYellow
If Target.Value <> "" Then
For Each Rng In Sheet1.UsedRange
If Rng.Value = Target.Value Then Set Arr = Union(Arr, Rng)
Next
Arr.Interior.Color = vbYellow
End If
End If
End Sub

详细操作可以关注我的百度空间!本回答被提问者采纳
第2个回答  2011-04-26
用vba配合条件格式再加一个辅助单元格。
当点击一个单元格时会产生SelectionChange事件,写代码使辅助单元格的数值与被选单元格数值相同,然后在需变色区域设置条件格式,当与辅助单元格数值相同那么就可以变色了。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网