![](/img/trans.png)
[英]How to Write VBA Conditional Formatting Between Cell Values (Invalid procedure, Call or argument)
[英]VBA invalid procedure call or argument: Conditional formatting for items stored in an array
我想清除並重置我的工作簿的條件格式規則。 我希望有條件格式化為綠色、黃色、橙色、紅色和粉紅色的值組。 每個顏色組的值存儲在一個數組中。
下面是我到目前為止的代碼,但只顯示了綠色和黃色的 for 循環。 我在這一行得到錯誤Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual,Formula1:=item
Sub ResetFormat()
Dim ws As Worksheet
Dim item As Variant
Dim arrGreen As Variant
arrGreen = Array(Worksheets("Drop down").Range("N11:N14"))
Dim arrYellow As Variant
arrYellow = Array(Worksheets("Drop down").Range("O11:O13"))
Dim arrOrange As Variant
arrOrange = Array(Worksheets("Drop down").Range("P11:P14"))
Dim arrRed As Variant
arrRed = Array(Worksheets("Drop down").Range("Q11:Q14"))
Dim arrPink As Variant
arrPink = Array(Worksheets("Drop down").Range("R11:R12"))
For Each ws In Sheets
Cells.Select
Selection.Cells.FormatConditions.Delete
For Each item In arrGreen
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:=item
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
End With
Next item
For Each item In arrYellow
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:=item
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
End With
Next item
Next ws
End Sub
對我有用的是使用范圍而不是數組,並添加以下行:
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
結果代碼:
Sub ResetFormat()
Dim ws As Worksheet
Dim item As Variant
Dim rngGreen As Range
Set rngGreen = Worksheets("Drop down").Range("N11:N14")
Dim arrYellow As Range
Set rngYellow = Worksheets("Drop down").Range("O11:O13")
Dim rngOrange As Range
Set rngOrange = Worksheets("Drop down").Range("P11:P14")
Dim rngRed As Range
Set rngRed = Worksheets("Drop down").Range("Q11:Q14")
Dim rngPink As Range
Set rngPink = Worksheets("Drop down").Range("R11:R12")
For Each ws In Sheets
ws.Activate
Cells.Select
Selection.Cells.FormatConditions.Delete
For Each item In rngGreen
Cells.Select
Selection.FormatConditions.Add Type:=xlTextString, String:=item, TextOperator:=xlEqual
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.Color = 5287936
End With
Selection.FormatConditions(1).StopIfTrue = False
Next item
For Each item In rngYellow
Cells.Select
Selection.FormatConditions.Add Type:=xlTextString, String:=item, TextOperator:=xlEqual
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.Color = 49407
End With
Selection.FormatConditions(1).StopIfTrue = False
Next item
Next ws
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.