0
我的工作在Excel的项目和我处理正在改变生活和E列从外部源采取的价格和F.VBA宏更改单元格的颜色更改值1秒
我要的是:
- 当这些细胞变化值,我希望他们能够从橙色改变其颜色,以让说白,或更改单元格背景,以白色
- 我希望这种情况发生仅1秒或更少,并恢复原来的单元格颜色或背景颜色
这样我可以保持我的眼睛,当他们改变价格。
这可能吗?
请帮忙。感谢
我的工作在Excel的项目和我处理正在改变生活和E列从外部源采取的价格和F.VBA宏更改单元格的颜色更改值1秒
我要的是:
这样我可以保持我的眼睛,当他们改变价格。
这可能吗?
请帮忙。感谢
添加到这一点,你希望它应用到(而不是在一个单独的模块)为1秒的颜色变化时,在列E或F的任何细胞改变工作表的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E:F")) Is Nothing Then
Target.Interior.ColorIndex = 2
Application.Wait (Now + #0:00:01#)
Target.Interior.ColorIndex = 46
End If
End Sub
或者对于少于1秒的更改,使用下面的版本作为application.wait
不处理比1秒更好的时间,但timer
。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E:F")) Is Nothing Then
Dim x As Single
x = Timer
While Timer - x < 0.5
Target.Interior.ColorIndex = 2
Wend
Target.Interior.ColorIndex = 46
End If
End Sub
ColorIndex值为白色和默认橙色。要更改为您要查找的特定颜色,请参阅http://dmcritchie.mvps.org/excel/colors.htm
编辑 - 下面的新答案。上面的原始答案。
好吧,这是一个混乱的方式,但应该实现你想要做的。
粘贴此为一个模块,调整1到10来覆盖你看更改细胞的数量:
Public val(1 To 10) As Variant
粘贴到您的ThisWorkbook代码区这一点,调整单元格引用所以每REF你看包括在正确的升序(E列最低到最高,然后F栏低到高):
Private Sub Workbook_Open()
val(1) = Sheet1.Range("E1").Value
val(2) = Sheet1.Range("E2").Value
val(3) = Sheet1.Range("E3").Value
val(4) = Sheet1.Range("E4").Value
val(5) = Sheet1.Range("E5").Value
val(6) = Sheet1.Range("F1").Value
val(7) = Sheet1.Range("F2").Value
val(8) = Sheet1.Range("F3").Value
val(9) = Sheet1.Range("F4").Value
val(10) = Sheet1.Range("F5").Value
End Sub
最后,粘贴到表与价值观你”的代码区重新观察变化,再次调整范围适合你的手表范围:
Private Sub Worksheet_Calculate()
Dim x As Single, colIndx As Integer
i = 1
For Each cell In Range("E1:E5")
If cell.Value <> val(i) Then
colIndx = cell.Interior.ColorIndex
x = Timer
While Timer - x < 0.5
cell.Interior.ColorIndex = 2
Wend
cell.Interior.ColorIndex = colIndx
val(i) = cell.Value
End If
i = i + 1
Next cell
For Each cell In Range("F1:F5")
If cell.Value <> val(i) Then
colIndx = cell.Interior.ColorIndex
x = Timer
While Timer - x < 0.5
cell.Interior.ColorIndex = 2
Wend
cell.Interior.ColorIndex = colIndx
val(i) = cell.Value
End If
i = i + 1
Next cell
End Sub
最后保存并关闭工作簿,然后重新打开它,并希望的颜色应与值一起更新。
非常感谢您的帮助。我添加了代码,但它似乎只在单击单元格并更改其颜色时才起作用。当它自动更新新的价格它似乎不工作。 – JustSomeExcelVbathings
工作表更改事件仅在工作表上的实际值更改时触发。我认为你的价值观是通过某种公式自动更新的?如果你可以在价格价值更新的机制上发布一些细节,我可以看到是否还有另一种方法可以考虑改变这些变化。 –
是的,有一个公式用于从列标题和返回确切价格的值。所以,公式不会改变,只有值。如果我在E10列上写公式,例如this = A10也是一样。如果我在a10上编写,让我们说1000,并将其更改为1500,则E10上不会发生任何事情。值会改变,但背景颜色不会。 – JustSomeExcelVbathings