2016-09-01 5 views
0

У меня есть массив, поэтому я могу проверить содержимое листка. Где я нахожу несоответствия, я хочу выделить их. Я «пытался» использовать .Interior.colourindex, но это не работает. Я исследовал его, и эта функция меняет цвет интерьера ячейки, так как я в массиве, я не могу этого сделать. Ниже приведен мой код с включенным в него .interior.colourindex (явно не работает). Я был бы признателен, если бы кто-нибудь мог сказать мне альтернативный способ подчеркнуть эти различия, пожалуйста?Как выделить содержимое в массиве

Код:

Sub AcidMap() 

gFrow = 1 
gLastrow = FindLastRow(gcsAmort) 
gLastcolumn = FindLastCol(gcsAmort) 

gVmyArray = Sheets(gcsAmort).Range(Sheets(gcsAmort).Cells(1, 1), Sheets(gcsAmort).Cells(1, gLastcolumn)) 
gVAmortArray = Sheets(gcsAmort).Range(Sheets(gcsAmort).Cells(1, 1), Sheets(gcsAmort).Cells(gLastrow, gLastcolumn)) 

For x = LBound(gVAmortArray) To UBound(gVAmortArray) 

    If gVAmortArray(x, 1) <> "ID" Then 

      If gVAmortArray(x, 1) = gVAmortArray(x - 1, 1) Then 


      For y = 1 To 3 

       If y <> 1 Then 

        If gVAmortArray(x, y) <> gVAmortArray(x - 1, y) Then 

         gVAmortArray(x, y).Interior.ColorIndex = 5 


        End If 

       End If 

      Next y 

     End If 

    End If 

Next x 

Sheets(gcsAmort).Range(Sheets(gcsAmort).Cells(1, 1), Sheets(gcsAmort).Cells(gLastrow, gLastcolumn)) = gVAmortArray 

MsgBox "Macro Complete" 

End Sub 
+1

Вы пробовали условное форматирование с использованием формулы? – davidhu2000

+1

Массив значений сохраняется как значения в памяти и не привязан к ячейкам, из которых были получены значения. Поскольку это только значения, не существует соответствующего формата. –

+0

Спасибо Дэвиду - я не хочу использовать условное форматирование (CF), поскольку книга огромна, а CF будет убивать производительность. Скотт - Спасибо за ваш вклад. Эта обратная связь соответствует тому, что я прочитал - мне нужно найти альтернативный способ выделения этих ячеек. Еще раз спасибо за ввод. – user1624926

ответ

4

Вместо того, чтобы пытаться выделить массив просто выделите ячейку, которая соответствует значению в массиве.

Вместо:

gVAmortArray(x, y).Interior.ColorIndex = 5 

Используйте смещение привязывается к первой ячейке и с помощью вас х и у:

Sheets(gcsAmort).Cells(1, 1).Offset(x-1, y-1).Interior.ColorIndex = 5 

И так как вы ничего не делаете для значений в массиве есть не нужно вставлять одни и те же значения обратно, поэтому вы можете удалить эту строку, чтобы сохранить шаг.

+1

Еще раз - спасибо Скотту за вас. – user1624926

Смежные вопросы