在excel中,第i列和k列,单元格内容为1填充为绿色,2填充为黄色,3填充为红色,求VBA代码,谢了~

如题所述

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 9 Or Target.Column = 11 Then
If Target.Rows.Count > 1 Then Exit Sub
Target.Interior.ColorIndex = xlNone
If Target = 1 Then Target.Interior.ColorIndex = 4
If Target = 2 Then Target.Interior.ColorIndex = 6
If Target = 3 Then Target.Interior.ColorIndex = 3
End If
End Sub
'填写数据后用向下箭头过滤一下每个单元格才行,或者填写一个数据回击一下单元格。
'不然就要用循环语句,关键整个列数量太庞大,所以有些慢追问

考到宏里,运行不了。

追答

在工作表界面作如下操作:
标题栏->工具->宏->vixual basic编辑器(单击打开)
在打开的vixual basic编辑器窗口作如下操作:
标题栏->视图->工程资源管理器(单击打开)
双击sheet1(注意你的工作表如果是sheet2,就双击sheet2)
右边出现一大片空白区域
将上述代码复制->粘贴进去,
这样当你在工作表界面填写数据的时候,就会运行了,不需要在代码界面运行
只是我这个代码有个缺陷,就是填写个单元格后要回击一下单元格才行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-24
VBA代码如下:
If Worksheet("sheet1").Cells(i, j).Value = "1" Then
Worksheet("sheet1").Cells(i, j).Interior .ColorIndex = 10 '绿色
Worksheet("sheet1").Cells(i, j).Interior .Pattern = xlSolid
ElseIf Worksheet("sheet1").Cells(i, j).Value = "2" Then
Worksheet("sheet1").Cells(i, j).Interior .ColorIndex = 6 '黄色
Worksheet("sheet1").Cells(i, j).Interior .Pattern = xlSolid
ElseIf Worksheet("sheet1").Cells(i, j).Value = "3" Then
Worksheet("sheet1").Cells(i, j).Interior .ColorIndex = 3 '红色
Worksheet("sheet1").Cells(i, j).Interior .Pattern = xlSolid
End If追问

拷到宏里运行不了,如下:
Sub Worksheet()
If Worksheet("sheet1").Cells(i, j).Value = "1" Then
。。。。
End If
End Sub

追答

核心代码都给你写好了,其他的你随便找找EXCEL里面的帮助都会了。