中易网

excel VBA 符合条件的数字 颜色

答案:3  悬赏:10  
解决时间 2021-03-22 14:39
我想通过点击一个按钮 弹出 对话框,对话框里面有“名称”和“最小数值”两行。
使用excel的人只要输入名称:巴沙,最小数值:6 ,就表示当巴沙的目前库存为小于6时,数字自动变成红色。
我这里有一段代码:

Sub 按钮1_Click()
Dim Mc As String
Dim x&, y&, Sl&
Mc = InputBox("请输入名称")
Sl = InputBox("请输入报警数量")
For x = 2 To Range("A65536").End(xlUp).Row
If Cells(x, 1) = Mc And Cells(x, 3) < Sl Then
Cells(x, 3).Font.ColorIndex = 3
End If
Next x
End Sub
这段代码就是有点不好 ,每次录入新数据后,不会自动执行此命令。求助!大虾们~~



最佳答案
给你提供一个思路
新建一个工作表,并命名为 “保存参数”
然后把你 按钮1_Click 过程中的参数保存到新建工作表的A1 和A2中

把下面过程添加到处理工作表中,即可实现自动变化
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Mc As String
Dim x&, y&, Sl&
Mc = Sheets("保存参数").Range("A1")
Sl = Sheets("保存参数").Range("A2")
For x = 2 To Range("A65536").End(xlUp).Row
If Cells(x, 1) = Mc And Cells(x, 3) < Sl Then
Cells(x, 3).Font.ColorIndex = 3
else
Cells(x, 3).Font.ColorIndex = xlNone
End If
Next x
End Sub
全部回答
强烈建议不要用vba的chang事件来实现。因为,每次输入或者点击单元格的时候都会触发这个程序,个人因为是个很讨厌的事。 建议在目前库存的列,用条件格式来实现让字体变成红色。这个是次情况下最常用的。 有问题邮件问[email protected]
楼上引用了我的代码呀?呵呵 a列为名称列,c列为数量列,代码如下 sub 按钮1_click() dim mc as string dim x&, y&, sl& mc = inputbox("请输入名称") sl = inputbox("请输入报警数量") for x = 2 to range("a65536").end(xlup).row if cells(x, 1) = mc and cells(x, 3) < sl then cells(x, 3).font.colorindex = 3 end if next x end sub
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
美利达13款的公爵300,500和600区别大吗?想
微信钱包充值200元话费不到账怎么办
西安鱼化寨的添彩画业是不是骗人的,谁去过
怎么判断含有同种元素的化合物稳定性
奶香蛋挞和葡式蛋挞的做法 。 我只要葡式塔液
为什么乘坐飞机开了飞行模式也不行,必须要求
求光明莫斯利安酸奶的产地详细介绍
摩托车四年没有年检,现在被交警扣了车,要怎
捕鱼达人千炮版怎样刷金币?
小苍北冥数码陈子豪外设店怎么样
M号是多大
尼康有什么兼顾广角和中长端的恒定光圈镜头呢
问一部电影名称,好象是泰国的,好象是拔泰王
翠贝卡配绝对零度什么比例最好
18岁缺钙该吃什么补钙的啊?大家告诉我下吧,
推荐资讯
脱毛去哪里比较好
好的童装品牌有哪些?
离东台火车站最近的汽车站是哪个?另外从东台
元素周期表上“外围电子层排布”应该如何排布
哈尔滨有教乐器的学校吗,我想学一种乐器,大家
原电池,电解池的内电路中,离子流向是怎样的
“吃了三顿”和“吃了三个”结构上的差别
交通事故死亡,亳州小孩抚养费赔偿标准
高速列车300千米每小时比普通列车速度的三倍
怎么获得DOTA2的产品激活码?
上班路途耗时40分钟长吗?
成都最快速的长高方法?躁心
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?