#vba #excel
#vba #excel
Вопрос:
Я хочу изменить свой код, чтобы заполнять ячейки только красным цветом, если значение = 0 и значение соседней ячейки в столбце L пусто.
Для ячеек со значением = 0 и значением соседней ячейки в столбце L не пусто, я хотел бы заполнить ячейку 0 шаблоном.
Я приложил скриншот того, как это должно выглядеть.
Sub Fill_Cell()
Dim rngCell As Range
For Each rngCell In Range("C7:K100")
If rngCell.Value = "0" Then
rngCell.Cells.Interior.ColorIndex = 3
Else
''If value = 0 amp; adjacent cell in column L <> ''
''rngCell.Cells.Interior.Pattern = xlGray16
End If
Next
End Sub
Комментарии:
1. разве это не должно быть сделано с помощью условного форматирования?
Ответ №1:
Попробуйте это
Option Explicit
Sub Fill_Cell()
Dim rngCell As Range
For Each rngCell In Range("C7:K100")
If rngCell.Value = "0" Then
Select Case Cells(rngCell.row, "L")
Case Is = ""
rngCell.Cells.Interior.ColorIndex = 3
Case Else
rngCell.Cells.Interior.Pattern = xlGray16
End Select
End If
Next rngCell
End Sub
Комментарии:
1. @user3596788 Конечно, без проблем! Рад, что это помогло!
Ответ №2:
Вы близки! Я бы попробовал взять ваш код и немного изменить его
Sub Fill_Cell()
Dim rngCell As Range
For Each rngCell In Range("C7:K100")
If rngCell.Value = "0" Then
If Cells(rngCell.Row, 12).Value <> "" Then
'If it is 0 and L not empty
rngCell.Cells.Interior.Pattern = xlGray16
else
'If it is 0 and L is empty
rngCell.Cells.Interior.ColorIndex = 3
End If
End If
Next
End Sub
Ответ №3:
Похоже, что пара человек победила меня:
For Each rngCell In Range("C7:K100")
If rngCell.Value = "0" And Cells((rngCell.Row), 12).Value <> "" Then
rngCell.Cells.Interior.Pattern = xlGray16
ElseIf rngCell.Value = "0" Then
rngCell.Cells.Interior.ColorIndex = 3
End If
Next
Комментарии:
1. Нет проблем, рад использовать use. Спасибо.