Excel编写VBA判断2个值是否相等,然后改变单元格颜色

这篇博客介绍了如何使用VBA在Excel中编程,当用户输入新值时,自动检查该值是否与前一行的值相等。如果相等,将单元格颜色设置为红色,否则设为白色。该方法通过`Worksheet_SelectionChange`和`Worksheet_Change`事件处理程序实现,提高了数据验证和视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript"><!-- google_ad_client = "pub-0241434510974184"; /* 博客文章广告728x90, */ google_ad_slot = "7316585398"; google_ad_width = 728; google_ad_height = 90; // --></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

1.excel建立表格。

如图:

2.sheet上面点反键加入vba代码:

'ActiveCell.Row ‘活动单元格所在的行数
'ActiveCell.Column ‘活动单元格所在的列数

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call ChangActiveCellColor
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
'MsgBox ("回车2")
'MsgBox Target.Cells.Address
'MsgBox Range(Target.Cells.Address)
Dim I As Integer

If Sheet1.Range("A" & ActiveCell.Row - 1).Value <> "" Then

For I = 2 To ActiveCell.Row - 2
'Range("A" & I) = I
'MsgBox Range("A" & I)

If Sheet1.Range("A" & ActiveCell.Row - 1).Value = Sheet1.Range("A" & I).Value Then
'Range(Target.Cells.Address).Interior.Color = RGB(255, 0, 0)
Sheet1.Range("A" & ActiveCell.Row - 1).Interior.Color = RGB(255, 0, 0) '红
GoTo con
Else
'Range(Target.Cells.Address).Interior.Color = RGB(255, 255, 255)
Sheet1.Range("A" & ActiveCell.Row - 1).Interior.Color = RGB(255, 255, 255) '白
End If
Next
Else '判断改为空格之后点击回车
Sheet1.Range("A" & ActiveCell.Row - 1).Interior.Color = RGB(255, 255, 255) '白
End If

End If
con:
End Sub


Private Sub ChangActiveCellColor()
'MsgBox Target.Cells.Address
'MsgBox Range(Target.Cells.Address)
Dim I As Integer

If ActiveCell.Value <> "" Then

For I = 2 To ActiveCell.Row - 1
'Range("A" & I) = I
'MsgBox Range("A" & I)

If ActiveCell.Value = Sheet1.Range("A" & I).Value Then
'Range(Target.Cells.Address).Interior.Color = RGB(255, 0, 0)
ActiveCell.Interior.Color = RGB(255, 0, 0)
GoTo con
Else
'Range(Target.Cells.Address).Interior.Color = RGB(255, 255, 255)
ActiveCell.Interior.Color = RGB(255, 255, 255)
End If
Next

End If

con:

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值