[英]How to color a cell in Excel using a formula?
我想做類似的事情:
=iif(A1>10,backcolor = black,backcolor = green)
我想要一個公式而不是向導。
您應該使用條件格式,而不是使用公式。 選擇適當的列,然后轉到“ 首頁”->“條件格式”->“突出顯示單元規則”。 之后,您可以定義標准,以及單元應該變成哪種顏色。
有關更廣泛的解釋,請訪問以下鏈接。 https://support.office.com/zh-CN/article/Use-a-formula-to-apply-conditional-formatting-fed60dfa-1d3f-4e13-9ecb-f1951ff89d7f?ui=zh-CN&rs=zh-CN&ad=我們
編輯:
據我所知,使用公式無法更改單元格的顏色。 如果有人知道該怎么做,請發表! 同時,這是一個小例程,說明如何使用VBA將顏色更改為綠色。
Private Sub changecolor()
Dim i As Long: i = 1
Dim LastRow As Long
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
Do Until i = LastRow
With Range("A" & i)
If .Value > 10 Then
Cells(i, 1).Interior.ColorIndex = 10
End If
End With
i = i + 1
Loop
End Sub
注意: 每10萬行此公式大約需要3到6秒,這可能會非常慢,具體取決於應用程序。 運行一個小測試后,我發現以下運行時:
164269ms for 1000000 records with 45,4% coloured : ~16.4s/100k records
349193ms for 1000000 records with 100% coloured : ~34.9s/100k records
9016ms for 1000000 records with 0% coloured : ~0.9s/100k records
似乎使用Cells(i, 1).Interior.ColorIndex
可以以高達Cells(i, 1).Interior.ColorIndex
/ 100k的記錄增加時間! 如果有人知道更好的方法,請隨時賜教!
您可以將公式與事件宏結合使用。 選擇一個單元格,說B2並輸入公式:
=IF(A1>10,"black","green")
然后格式化B2 Custom ;;;
這將隱藏顯示的文本。
然后在工作表代碼區域中放置以下事件宏:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
With Range("B2")
If .Value = "green" Then
.Interior.Color = RGB(0, 255, 0)
Else
.Interior.Color = RGB(0, 0, 0)
End If
End With
Application.EnableEvents = True
End Sub
該宏將在每次重新計算工作表時運行。 它將檢查B2中的文本( 即使該文本不可見 )並相應地調整背景色。
因為它是工作表代碼,所以非常易於安裝和自動使用:
如果您有任何疑問,請先在試用版工作表上嘗試一下。
如果您保存工作簿,則宏將隨其一起保存。 如果您在2003年以后使用Excel版本,則必須將文件另存為.xlsm而不是.xlsx
刪除宏:
要總體上了解有關宏的更多信息,請參見:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/zh-CN/library/ee814735(v=office.14).aspx
要了解有關事件宏(工作表代碼)的更多信息,請參見:
http://www.mvps.org/dmcritchie/excel/event.htm
必須啟用宏才能使其正常工作!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.