Измените For Each Mycell In Myrange.Rows
эту строку на
For Each Mycell In Myrange
Когда вы используете Myrange.Rows
, тогда саб будет зацикливаться на строке вашего установленного диапазона. Когда вы будете использовать только Myrange
, он будет зацикливаться на ячейках заданного диапазона. Также удалите .value
из Mycell.Value
, потому что, когда вы будете использовать .value
, он будет принимать только значения (числовые значения) из ячейки. Если вы хотите сохранить .value
, измените тип переменной Integer
или Long
на String
, например Dim Myvalue As Integer
.
Итак, полный саб будет
Sub coloridentifier()
Dim Myrange As Range
Dim Mycell As Range
Dim Myvalue As Variant
Set Myrange = Selection
For Each Mycell In Myrange
Myvalue = Mycell
If Mycell.Interior.Color = RGB(0, 176, 80) Then
Mycell.Value = Myvalue & " Green"
ElseIf Mycell.Interior.Color = RGB(0, 0, 255) Then
Mycell.Value = Myvalue & " Blue"
ElseIf Mycell.Interior.Color = RGB(192, 0, 0) Then
Mycell.Value = Myvalue & " Red"
End If
Next Mycell
End Sub