Microsoft Excel 2007 - 不使用列表根据单元格 A1 填充单元格 C1 的公式?

Microsoft Excel 2007 - 不使用列表根据单元格 A1 填充单元格 C1 的公式?

我正在尝试编写一个公式,让 Excel 根据不同单元格的内容将数据放置在一个单元格中,但该公式不能位于 Excel 放置数据的单元格中。

如果我们采用以下简单公式并将其放在单元格 B1 中,它可以正常工作: =IF(A1=1,"Okay","Nope")

如果我在单元格 A1 中输入数字 1,则 Excel 会在单元格 B1 中返回“Okay”,如果 A1 为空或有不同的数字,则返回“Nope”。

但这不是我想要的

我想要的是类似这样的结果:如果 A1 包含数字 1,那么 Excel 应该在单元格 C1 中放置/填充单词“Okay” =IF(A1=1,C1="Okay","")

需要明确的是,这并不是根据不同单元格的内容更新包含公式的单元格,而是根据另一个单元格的内容将特定文本放置在不同的单元格中,而公式并不位于放置文本的单元格中。

对我来说这似乎是一项简单的任务但我不知道如何实现它。

我是否遗漏了什么?

答案1

这可以通过 VBA 宏完成:

Sub PutData()
    If Range("A1").Value = 1 Then
        Range("C1").Value = "Okay"
    Else
        Range("C1").Value = "Nope"
    End If
End Sub

首先在单元格中输入一个值A1然后运行宏。

如果需要的话:

  • 可以修改宏来处理多个单元格
  • 宏的执行可以自动进行,因此只需更改A1将导致宏运行。

答案2

由于您不想使用任何公式来解决问题,因此 MACRO(VBA 代码)是最佳解决方案。为了使整个过程自动化,我建议使用Worksheet_change eventMACRO,而不是简单的 MACRO。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.value = 1 Then
        Range("C1").value = "Okay"
     ElseIf Target.Address = "$A$1" And Target.value <> 1 Then
     Range("C1").value = "Nope"
    End If
End Sub 

怎么运行的:

  • 将此代码复制并粘贴为标准模块。
  • 一旦您A11宏填充单元格,它就会放入Okay单元格中C1,如果单元格 A1为空白或者具有除此以外的任何值1 ,则宏就会放入Nope单元格中C1

笔记:

  • 根据需要调整代码中的单元格引用,您也可以NopeBlank或任何其他值替换。

相关内容