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