【问题标题】:Add IF statement to Combo Box Linked Cell Excel将 IF 语句添加到组合框链接单元格 Excel
【发布时间】:2025-12-19 02:00:17
【问题描述】:

我有一个链接到我的 ComboBox 的单元格,它显示 ComboBox 的下拉值。

在另一个单元格中,我有 IF 语句可以根据某些情况交换数字,例如:=IF(E38=0,C37,E37)

我尝试在 ComboBox 值出现的地方放置一个 IF 语句,但是,正如您所猜想的,当我运行一个宏并且 ComboBox 必须显示一个新值时,公式被删除了。

我使用的公式是:=IF(E38=0,"ComboBox Value",E37) 其中 ComboBox Value 是下拉列表中当前的名称。 这没有用。我知道它在 LinkedCell 属性中也不起作用。

有没有办法使用 VBA 或公式或条件格式或其他东西来合并它?

提前致谢。

【问题讨论】:

    标签: excel vba combobox


    【解决方案1】:

    我认为这个小演示会为您指明正确的方向。当组合框中的值更改时,它将更改您选择的单元格中的值。忽略 debug.print 语句,可能希望使用更改事件而不是单击事件。

    Private Sub ComboBox1_Click()
        Debug.Print ("CHANGED")
    End Sub
    
    Private Sub ComboBox1_Change()
        Debug.Print ("CHANGED2")
        ActiveSheet.Cells(1, 1) = ComboBox1.Value
    End Sub
    

    【讨论】:

      【解决方案2】:

      您是否尝试过 =INDEX("Input range","Cell link") 来获取您的“组合框值”?

      【讨论】:

      • 不,我没有。我也不明白那将如何工作。你是说我用这个公式代替LinkedCell 吗?然后定位组合框?
      • 您可以尝试在此处加载您想要实现的简单示例的图片吗?
      • 如果您查看第二张图片,我希望文本“Your Proposal below”出现在当前显示“Project 1”的位置。那是我尝试使用 IF 语句的地方。名称“Project 1”来自组合框 LinkedCell 属性。
      • 尝试将 =IF(E38=0,index("Input range", "Cell link",E37) 放在 C37 单元格中,其中 "Input range" 和 "Cell link" 来自ComboxBox -> 格式控制 -> 控制选项卡
      【解决方案3】:
      1. 第一个链接组合框到一个单元格,比如 C1
      2. 说,您必须根据给定条件更新 Range("C2")。
      3. Sub ComboIf()

        如果 Range("E38").Value = 0 那么 范围(“C2”)。值 = 范围(“C1”) 否则: Range("C2").Value = Range("E37") 结束如果

        结束子

      4. 现在首先从组合框中选择一个值,该值将更新单元格 C1,然后运行宏,它将更新 C2- 如果为 0,则无论您选择了任何当前组合值,否则使用 E​​37 中的任何值。

      【讨论】: