Excel 包含特定百分比值的VBA单元格格式
我有一个VBA代码,它在单元格中循环查找百分比值,并在单击复选框时相应地高亮显示它们。Excel 包含特定百分比值的VBA单元格格式,excel,vba,Excel,Vba,我有一个VBA代码,它在单元格中循环查找百分比值,并在单击复选框时相应地高亮显示它们。 我有两个复选框-大于100,小于0 Private Sub greater大于100_Click() 变暗lr为长 lr=范围(“A”和Rows.Count).End(xlUp).Row 调光范围 变暗rng As范围 设置rng=范围(“G3:G30”和lr) 模糊的发现一样长 查找=1 Application.ScreenUpdating=False 如果大于100.Value=True,则 对于rng中
我有两个复选框-
大于100
,小于0
Private Sub greater大于100_Click()
变暗lr为长
lr=范围(“A”和Rows.Count).End(xlUp).Row
调光范围
变暗rng As范围
设置rng=范围(“G3:G30”和lr)
模糊的发现一样长
查找=1
Application.ScreenUpdating=False
如果大于100.Value=True,则
对于rng中的每个c
如果c>=查找,则
c、 挑选
有选择。边界
.颜色=蓝色
.LineStyle=xlContinuous
.重量=xl厚
以
如果结束
下一个c
Application.ScreenUpdating=True
其他的
对于rng中的每个c
如果c>=查找,则
c、 挑选
有选择。边界
.颜色=黑色
.LineStyle=xlNone
.Weight=xlThin
以
如果结束
下一个c
Application.ScreenUpdating=True
如果结束
端接头
私有子类0_单击()
变暗lr为长
lr=范围(“A”和Rows.Count).End(xlUp).Row
调光范围
变暗rng As范围
设置rng=范围(“G3:G30”和lr)
模糊的发现一样长
查找=0
Application.ScreenUpdating=False
如果LessThan0.Value=True,则
对于rng中的每个c
如果c首先,请在计算后检查rng变量中的最终值。通常,如果您正在考虑单元A3到G30,那么您的范围应该是“A3:G30”。语句lr=range(“A”和Rows.Count).End(xlUp).Row和Set rng=range(“G3:G30”和lr)给人的印象是单元格范围没有正确形成。然而,我的怀疑可能只是一个虚惊一场,因为无论你描述了什么,你的要求都不完全清楚
其次,对于简洁的代码,请将代码的以下部分更改为如下所示
Application.ScreenUpdating = False
If LessThan0.Value = True Then
For Each c In rng
If c <= find Then
c.Select
With Selection.Borders
.Color = vbBlue
.LineStyle = xlContinuous
.Weight = xlThick
End With
End If
Next c
Application.ScreenUpdating = True
Else
For Each c In rng
If c <= find Then
c.Select
With Selection.Borders
.Color = vbBlack
.LineStyle = xlNone
.Weight = xlThin
End With
End If
Next c
Application.ScreenUpdating = True
End If
Application.ScreenUpdate=False
如果LessThan0.Value=True,则
对于rng中的每个c
如@GSerg所评论的,如果您使用表单控制复选框,那么可能会链接到两个单元格,比如F1和F2,为条件格式添加的公式如下:=和($F$1=FALSE,G3>100)
=和($F$1,G3>100)
=和($F$2=FALSE,G3非常有效!非常感谢您的帮助。
Application.ScreenUpdating = False
For Each c In rng
If c <= find
c.Select
With Selection.Borders
.Color = IIf(LessThan0.Value = True, vbBlue, vbBlack)
.LineStyle = IIf(LessThan0.Value = True, xlContinuous, xlNone)
.Weight = IIf(LessThan0.Value = True, xlThick, xlThin)
End With
End If
Next c
Application.ScreenUpdating = True