EXCEL中如何让一个单元格内的数值根据这个单元格的颜色的改变而改变?
EXCEL中如何让一个单元格内的数值根据这个单元格的颜色的改变而改变? 比如A单元格的背景色是黑色,值是1,当将A单元格背景色设为红色后,值自动变成2,如何实现...
EXCEL中如何让一个单元格内的数值根据这个单元格的颜色的改变而改变? 比如A单元格的背景色是黑色,值是1,当将A单元格背景色设为红色后,值自动变成2,如何实现?最好是用VBA来实现。感谢各位!
展开
3个回答
展开全部
工具—宏—编辑器—双击sheet1(sheet1),把下面代码粘上,在改变填充色后,要把鼠标放在单元格的编辑框里回下车,值就会改变,如果不在编辑框内回车,只改变填充色,vba程序会认为单元格无改动,值就不会改变。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Interior.Color = vbBlack Then
Target.Value = 1
Else
If Target.Interior.Color = vbRed Then
Target.Value = 2
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Interior.Color = vbBlack Then
Target.Value = 1
Else
If Target.Interior.Color = vbRed Then
Target.Value = 2
End If
End If
End Sub
展开全部
应该是Workbook选择改变时触发,这样不管那个表都能用,楼上“三三万尺”的是只对SHEET1有效,我改的:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Target.Interior.Color = vbBlack Then '如果为黑色
Target.Value = 1
Else
If Target.Interior.Color = vbRed Then '如果为红色
Target.Value = 2
End If
End If
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Target.Interior.Color = vbBlack Then '如果为黑色
Target.Value = 1
Else
If Target.Interior.Color = vbRed Then '如果为红色
Target.Value = 2
End If
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询