Excel 允许一行中只有一个单元格有值
假设我在Excel中使用单元格Excel 允许一行中只有一个单元格有值,excel,vba,Excel,Vba,假设我在Excel中使用单元格A1到C1,每个单元格代表三个单独的选项,用户应在其中输入1或0。值1接受该选项,而0拒绝该选项。现在,如果我希望一次只选择其中一个选项;是否可以删除以前输入的任何值 例如: 如果用户首先选择单元格A1中的选项,则该选项将如下所示: A1=1 B1=0 C1=0 如果用户随后决定切换到单元格B1中的选项,而不首先手动删除A1中的值,则该选项将如下所示: A1=1 B1=1 C1=0 是否有一种方法可以自动删除先前选择的选项,以便一旦用户从A1中的选项切换到例如B1中
A1
到C1
,每个单元格代表三个单独的选项,用户应在其中输入1或0。值1接受该选项,而0拒绝该选项。现在,如果我希望一次只选择其中一个选项;是否可以删除以前输入的任何值
例如:
如果用户首先选择单元格A1
中的选项,则该选项将如下所示:
A1=1 B1=0 C1=0
如果用户随后决定切换到单元格B1
中的选项,而不首先手动删除A1
中的值,则该选项将如下所示:
A1=1 B1=1 C1=0
是否有一种方法可以自动删除先前选择的选项,以便一旦用户从A1
中的选项切换到例如B1
中,它看起来如下所示:
A1=0 B1=1 C1=0
谢谢 试试这段代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row <> 1 Or Target.Column > 3 Then Exit Sub
If Target.Value = 1 Then
Application.EnableEvents = False
Range("A1:C1").Value = 0
Target = 1
Application.EnableEvents = True
End If
End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果Target.Row 1或Target.Column>3,则退出Sub
如果Target.Value=1,则
Application.EnableEvents=False
范围(“A1:C1”)。值=0
目标=1
Application.EnableEvents=True
如果结束
端接头
试试这段代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row <> 1 Or Target.Column > 3 Then Exit Sub
If Target.Value = 1 Then
Application.EnableEvents = False
Range("A1:C1").Value = 0
Target = 1
Application.EnableEvents = True
End If
End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果Target.Row 1或Target.Column>3,则退出Sub
如果Target.Value=1,则
Application.EnableEvents=False
范围(“A1:C1”)。值=0
目标=1
Application.EnableEvents=True
如果结束
端接头
用于两行或更多行
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C2")) Is Nothing Then Exit Sub
r = Target.Row
If Target.Value = 1 Then
Application.EnableEvents = False
Range("A" & r & ":C" & r).Value = 0
Target = 1
Application.EnableEvents = True
End If
End Sub
2行或以上
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C2")) Is Nothing Then Exit Sub
r = Target.Row
If Target.Value = 1 Then
Application.EnableEvents = False
Range("A" & r & ":C" & r).Value = 0
Target = 1
Application.EnableEvents = True
End If
End Sub
对看看这件事,是的。看一看这个活动。谢谢,这很有效!在不影响第1行中的选项的情况下,是否也可以将代码应用于更多行?例如,如果我在A2到C2中有另一组三个选项,并且我希望在此范围内选择的选项独立于所选择的A1到C1?谢谢,这非常有效!在不影响第1行中的选项的情况下,是否也可以将代码应用于更多行?例如,如果我在A2到C2中有另一组三个选项,并且我希望在此范围内选择的选项独立于所选择的A1到C1?