我想通过点击一个按钮 弹出 对话框,对话框里面有“名称”和“最小数值”两行。
使用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
这段代码就是有点不好 ,每次录入新数据后,不会自动执行此命令。求助!大虾们~~
excel VBA 符合条件的数字 颜色
答案:3 悬赏:10
解决时间 2021-03-22 14:39
- 提问者网友:独菊痴梦
- 2021-03-22 01:47
最佳答案
- 二级知识专家网友:一只傻青衣
- 2021-03-22 02:49
给你提供一个思路
新建一个工作表,并命名为 “保存参数”
然后把你 按钮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
新建一个工作表,并命名为 “保存参数”
然后把你 按钮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
全部回答
- 1楼网友:专属的偏见
- 2021-03-22 05:41
强烈建议不要用vba的chang事件来实现。因为,每次输入或者点击单元格的时候都会触发这个程序,个人因为是个很讨厌的事。
建议在目前库存的列,用条件格式来实现让字体变成红色。这个是次情况下最常用的。
有问题邮件问[email protected]
- 2楼网友:而你却相形见绌
- 2021-03-22 04:23
楼上引用了我的代码呀?呵呵
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
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯