Excel 宏单选按钮依赖于单元格值

Excel 宏单选按钮依赖于单元格值

我有一个单元格A1,其中填充了美元值,例如20000基于 vlookup。根据找到的值,我希望选择 4 个单选按钮中的 1 个。

0-40K  40-150K  150-300K  >300K

我不想创建宏(为了简单起见),而且它需要在单元格 A1 更新时进行更新。

任何帮助深表感谢!

最新代码:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D8")) Is Nothing Then
        Select Case Range("D8").Value
            Case 0 To 39999
                revenue1.Value = True
            Case 40000 To 149999
                revenue2.Value = True
            Case 150000 To 299999
                revenue3.Value = True
            Case Else
                revenue4.Value = True
        End Select
    End If
End Sub

此外,所有单选按钮都在同一张表中。请原谅格式错误

答案1

您可以在不使用宏的情况下执行此操作,但它只能单向工作。关键是使用表单控件,而不是 ActiveX 控件。插入Option Button (Form Control)任意数量的对象。右键单击一个对象,然后单击“设置控件格式”。在“控件”选项卡中,选择一个链接单元格。现在,该单元格的值将决定选择哪个单选按钮。如果您输入 4 个单选按钮,则单元格值将为 1、2、3 或 4。

步骤1第2步

但现在到了最困难的部分。您可以根据单元格中的值将该单元格设置为具有公式值,A1但手动选择单选按钮将覆盖该公式。除非这是用户每次都保存主模板的新副本的模板,否则这可能不行。您仍然需要一个简短的宏来在每次单元格A1更改时重写公式,这违背了整个目的。在这种情况下,您最好直接使用 VBA 设置单选按钮,最好使用 ActiveX 控件来完成。

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Select Case Range("A1").Value
            Case 0 To 39999
                OptionButton1.Value = True
            Case 40000 To 149999
                OptionButton2.Value = True
            Case 150000 To 299999
                OptionButton3.Value = True
            Case Else
                OptionButton4.Value = True
        End Select
    End If
End Sub

相关内容