![如何执行 Excel 单元格引用其先前的值并根据新值更改单元格颜色](https://linux22.com/image/1559339/%E5%A6%82%E4%BD%95%E6%89%A7%E8%A1%8C%20Excel%20%E5%8D%95%E5%85%83%E6%A0%BC%E5%BC%95%E7%94%A8%E5%85%B6%E5%85%88%E5%89%8D%E7%9A%84%E5%80%BC%E5%B9%B6%E6%A0%B9%E6%8D%AE%E6%96%B0%E5%80%BC%E6%9B%B4%E6%94%B9%E5%8D%95%E5%85%83%E6%A0%BC%E9%A2%9C%E8%89%B2.png)
我的电子表格正在监控 CoinMarketCap 的价格,并每分钟动态更新我当前的投资组合。这个想法是,如果值低于、大于或等于之前的状态,则更改特定单元格的颜色:等于 = 黄色,大于 = 绿色,小于 = 红色。根据给定的 Excel 条件格式规则,无法执行此操作。有人可以帮忙吗?有现有的 VBA 代码可用吗?或示例
提前感谢您的帮助:-) Excel 2016 Jacqu
答案1
在 VB 编辑器窗口中双击获取硬币市场更新的工作表并粘贴此 VB 脚本。
我假设您在 A 列中获取更新。如果不同,请将第 6 行中的列名称替换为其他。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim newVal As Variant
If Target.Count > 1 Then
Exit Sub
End If
If Intersect(Range("A:A"), Target) Is Nothing Then
Exit Sub
End If
Application.EnableEvents = False
Application.ScreenUpdating = False
newVal = Target.Value
Application.Undo
Target.Offset(0, 1).Value = Target.Value
Target.Value = newVal
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
笔记, Excel 一旦更新 A 列中的值,您就会获得相邻列中的先前值。
请这样做,
- 选择整个 A 列或所需的行。
- 单击条件格式命令。
- 然后点击“突出显示单元格规则”。
然后按照**等于,大于和小于条件逐一格式化。
请记住,格式化时仅选择单元格 B2 进行比较。