Excel VBA,当选项发生变化时,怎么自动清空原来的输入?

A1是个下拉框,可选择yes/no
当选择Yes时,B1,B2里可以输入值;
当改变选项为“no”的时候,我想达到自动清除原来B1,B2里面输入的值,不需要去手动点run

只要在A1选No的时候B1,B2清除数值就可以了,不必要那么复杂。
在表格Change事件中写入代码:

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Address = "$A$1" Then
If .Value = "No" Then
Range("B1:B2").Value = ""
End If
End If
End With
End Sub
解释:A1制作成有效性序列Yas,No;每当A1选择一次No的时候B1,B2自动清除。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-09
这个可以通过插入两个选项按钮来实现,一个yes一个no
再分别插入两个模块,一个是yes指定的宏,一个是no指定的宏
Sub yes选项()
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
End Sub

Sub no选项()
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
Range("B1:B2").Select
Selection.ClearContents
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
这样就可以实现你想要的功能了,希望能帮到你
相似回答