我的模板涉及三个单元格,但只有一个单元格需要帮助(第 3 个)。
第一个单元格将等于 $0 或更大的值。第二个单元格将大于 $0 或为空白。只有当第一个单元格不等于 $0 时,第三个单元格才应等于第二个单元格中的值。如果第一个单元格的值等于 $0,则第三个单元格应等于 $0。
第一个单元格是基于用户的其他不相关输入的简单公式。字体始终为红色。
第二个单元格是简单的用户输入。此处的字体始终为蓝色,但用户可以手动用黄色填充单元格(基于该值是实际值还是估算值)。
如果第三个单元格的值大于 $0,则其应为粗体绿色字体;如果第三个单元格的值等于 $0,则其应为红色字体(非粗体)。此外,仅当第二个单元格填充为黄色且第一个单元格的值大于 $0 时,此单元格才应填充为黄色。
我认为解决方案涉及这些函数的组合;这超出了我的 EXCEL 技能水平。1) IF/THEN 公式 2) 条件格式 3) VBA 代码
我应该对第三个单元格做什么才能自动获取我想要的一切(无需用户触摸第三个单元格)?
提前致谢!
答案1
这是我的想法。不确定您对 VBA 有多熟悉,但如果您愿意,我可以解释此代码以及如何更详细地实现它。
我在工作表上添加了两个按钮,一个用于格式化单元格的颜色/字体,另一个用于清除颜色/字体。
Sub FormatColor3()
Set myWS = ThisWorkbook.Sheets("MySheet")
Set cell3 = myWS.Range("C2")
' Determining what color font is needed
If cell3.Value > 0 Then
cell3.Font.Color = vbGreen
cell3.Font.Bold = True
ElseIf cell3.Value = 0 Then
cell3.Font.Color = vbRed
End If
' Determining what color cell is needed (6 refers to the yellow cell color)
If (myWS.Range("B2").Interior.ColorIndex = 6 And myWS.Range("A2").Value > 0) Then
cell3.Interior.ColorIndex = 6
End If
End Sub
~
Sub Clear()
Set myWS = ThisWorkbook.Sheets("MySheet")
With myWS.Range("C2")
.Font.Color = 0
.Font.Bold = False
.Interior.ColorIndex = 0
End With
End Sub