excel中用宏进行循环判断并作出动作

目的:从A4到A13的单元格中,如果单元格内容为“已输俊龙”就将此单元背景色染成绿色如果不是,就不染色。我写的代码如下:SubM_madegreen()''M_madeg... 目的:从A4到A13的单元格中,如果单元格内容为“已输俊龙”就将此单元背景色染成绿色
如果不是,就不染色。
我写的代码如下:
Sub M_madegreen()
'
' M_madegreen Macro
' 条件满足时,区域变成绿色
'
' 快捷键: Ctrl+j
'

'定义一个变量I,初始值为0
Dim I
I = 0
Do While I < 10

Range("A" & 4 + I).Select
If Range("A" & 4 + I).Text = "已输俊龙" Then '判断单元格内容是否为真
Selection.Interior.PatternColorIndex = 12 '若为真,则染成绿色
Else: Selection.Interior.PatternColorIndex = 0 '否则不染色
End If
I = I + 1 '下移一行
Loop

End Sub
但是运行后是这样:
求指正!
展开
 我来答
hwmj8301
2012-04-13 · TA获得超过577个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:229万
展开全部
一定要vba代码么? 条件格式也可以完成啊
你选中A4:A13区域后
条件格式—突出显示单元格规则—等于
值:“已输俊龙” 格式:自定义格式—填充 即可

如果非要代码。。。。。
估计你的代码是录制的 所以有一个selection
循环的时候要改成具体的range对应
另外 你原来的那个else有点多余。。。。。
以下仅供参考

Sub M_madegreen()
' 条件满足时,区域变成绿色
' 快捷键: Ctrl+j
'定义一个变量I,初始值为0
Dim I As Integer
I = 0

Do While I < 10
Range("A" & 4 + I).Select
If Range("A" & 4 + I) = "已输俊龙" Then '判断单元格内容是否为真
Range("A" & 4 + I).Interior.ColorIndex = 12 '若为真,则染成绿色
End If
I = I + 1 '下移一行
Loop
End Sub

如有问题请详述
怡风听雪
2012-04-13 · TA获得超过444个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:107万
展开全部
Selection.Interior.PatternColorIndex = 12 '若为真,则染成绿色
改为
Selection.Interior.ColorIndex = 10 '若为真,则染成绿色

你的代码不是很有效率,给你改了下:
Sub M_madegreen()

Dim i
For i = 0 To 9
If Range("A" & 4 + i).Text = "已输俊龙" Then '判断单元格内容是否为真
Range("A" & 4 + i).Interior.ColorIndex = 10 '若为真,则染成绿色
Else: Range("A" & 4 + i).Interior.ColorIndex = 0 '否则不染色
End If
Next i

End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式