2012-07-14 28 views
1

後應用的是有沒有辦法刷新使用VBA一個細胞條件格式?條件格式似乎不更新細胞

問題: 我處於一種情況,我有一個單元格(A1)引用另一個單元格(B1),其中包含格式爲「數字,2位小數」的= SUM()數值,但單元格(A1)的條件格式爲「單元格值> = 1000」,並且我正在應用自定義格式,否則它使用歐元的貨幣格式。

我更新使用VBA值,然後做

Application.CalculateFull 

哪些更新我的公式,但這個條件格式只得到應用的第一次值越過1000 ...如果它是小於1000它不會回到原來的格式。

任何一個收到這個問題,並知道如何更新條件格式?如何使用VBA選擇單元格並刷新它?

+2

即使VBA正在發生變化值條件格式應該仍然適用。請在立即窗口中嘗試'?Application.enableevents = true'(當在VBE中執行Ctl + G時)...它是否返回'false'? – whytheq 2012-07-14 20:28:18

+0

我嘗試了你的建議,並返回True。單元格引用另一個單元格,其中有一個公式。條件格式是在數值發生變化時更新的,並且像我提到的那樣超過了1000,但是當它低於1000時,格式不會返回。 – Pricey 2012-07-15 15:01:52

+0

我也嘗試在條件格式設置StopIfTrue爲false,以防止它會這樣做,但它沒有......甚至找不到該屬性應該做什麼的很好的參考。 – Pricey 2012-07-15 15:42:04

回答

1

我決定選擇單元格,重新應用公式,然後激活每個VBA已經完成運行一次,下面的解決我的問題,現在...它只是一個恥辱它如此手冊。

Range("A1").Formula = "=B1" 
Range("A1").Select 
Range("A1").Activate 
1

你也可以試試這個:

Sub refreshScreen() 
    Application.Parent.Visible = False 
    Application.Parent.Visible = True 
End Sub 
0

這似乎是,如果使用自定義格式適用於NumberFormat屬性的條件格式錯誤(或不一致)。條件格式將應用自定義的NumberFormat,但不會在它不再爲true時恢復爲默認值。使用VBA應用條件格式時,只能使用字體/背景顏色,但在應用自定義NumberFormat時不再按預期方式運行。我通過爲true和false場景創建兩個條件格式來解決此問題。

隱藏文本時,當條件不成立的條件爲真

.NumberFormat = ";;;" 

顯示文本

.NumberFormat = "General" 

設置以下,但對行爲沒有影響:

  • EnableFormatConditionsCalculation是設爲True
  • En ableEvents設置爲True
  • 計算被設置爲自動

下面是這讓我在正確的方向前進的帖子的鏈接:

http://www.mrexcel.com/forum/excel-questions/735479-conditional-formatting-not-updating.html