EXCEL中如何使用VBA控制某个区域的有效性
A1-A5单元格的有效性为=$M$13+$L$2<=$L$5,其中M13=SUM(A1:A5),L2为之前累计额,L5为最高限额,这样可以达到效果:当A1-A5录入数字加...
A1-A5单元格的有效性为=$M$13+$L$2<=$L$5,其中M13=SUM(A1:A5),L2为之前累计额,L5为最高限额,这样可以达到效果:当A1-A5录入数字加上L2大于L5时就无法录入。
现在想用VBA控制A1-A5的有效性,当B2为“有限制”时有效性不变,当B2为“无限制”时A1-A5里可以自由录入任何数字。附件上传,求高手解决,谢谢!
VBA控制目的达到了,但我设置了工作表保护,有效性就失效,选择“有限制”或“无限制”时VBA就报错。 展开
现在想用VBA控制A1-A5的有效性,当B2为“有限制”时有效性不变,当B2为“无限制”时A1-A5里可以自由录入任何数字。附件上传,求高手解决,谢谢!
VBA控制目的达到了,但我设置了工作表保护,有效性就失效,选择“有限制”或“无限制”时VBA就报错。 展开
2个回答
展开全部
这是代码复制到sheet1的代码窗口就可以了。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [B2] = "有限制" Then
If [A1] + [A2] + [A3] + [A4] + [A5] + [L2] <= [L5] Then
Exit Sub
Else
MsgBox ("数字超过设定值")
Me.Range("A5").End(xlUp) = ""
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [B2] = "有限制" Then
If [A1] + [A2] + [A3] + [A4] + [A5] + [L2] <= [L5] Then
Exit Sub
Else
MsgBox ("数字超过设定值")
Me.Range("A5").End(xlUp) = ""
End If
End If
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |