我正在尝试编写一个公式,让 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 event
MACRO,而不是简单的 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
怎么运行的:
- 将此代码复制并粘贴为标准模块。
- 一旦您
A1
用1
宏填充单元格,它就会放入Okay
单元格中C1
,如果单元格A1
为空白或者具有除此以外的任何值1
,则宏就会放入Nope
单元格中C1
。
笔记:
- 根据需要调整代码中的单元格引用,您也可以
Nope
用Blank
或任何其他值替换。