Excel下拉框与公式

时间:2014-08-06 19:06:02

标签: excel vba excel-vba

嗨我有一个带有下拉框的Excel,其列表有3个单元格。其中一个细胞含有配方。问题是这个公式依赖于另一个单元格中的数据,当这个数据发生变化时,计算出的值会发生变化。该值将自动更新到选择它的列表中,但我将手动返回到下拉框并进行更改。如何自动更新值。如果需要,愿意查看VBA解决方案

2 个答案:

答案 0 :(得分:0)

将以下内容放入工作表模块中。它假定应用验证的单元格是G9,列表的第二个选项是公式。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(False, False) = "G9" Then
        If Target.HasFormula Then Exit Sub 'or else infinite loop
        Dim ListRange As Range
        Dim FoundIdx As Variant
        Set ListRange = Me.Evaluate(Me.Range("G9").Validation.Formula1)
        FoundIdx = Application.Match(Target.Value, ListRange, 0)
        If Not IsError(FoundIdx) Then
            If FoundIdx = 2 Then
                Target.Formula = ListRange(2).Formula
            End If
        End If
    End If
End Sub

请注意,如果公式可能与任何其他选项具有相同的值,则将会有效!

答案 1 :(得分:-1)

我无法重现您的问题。这是我做的:

  • 使用随机值填充2个单元格,使用公式填充第三个单元格(B3,B4,B5列)
  • 使用这3个单元格定义名称范围,称为选项
  • 使用“插入/表单控件/组合框”
  • 创建下拉列表
  • 将下拉菜单的输入范围设置为选项
  • 更改单元格值以使公式给出不同的结果,新值将反映在“选项”列表和“下拉列表”中。

这是你在做什么?