2016-08-25 3 views
1

У меня есть очень простой код, который я пытаюсь запустить, здесь:VBA Из ошибки памяти на простой код

Sub Highlight() 
Dim Diff As Range, cell As Range 
Set Diff = Sheets(1).UsedRange.Columns("N:S") 
For Each cell In Diff 
If cells.Value2 > 0.1 Then 
cell.Interior.ColorIndex = 0 
End If 
Next 
End Sub 

Однако право на заявление, если я получаю время выполнения 7: Из памяти. Я запускаю это на довольно небольшом наборе данных (< 5 000 ячеек) и закрыл все другие программы/ненужные процессы, а диспетчер задач отображает много памяти. Я понятия не имею, что может быть причиной этого на данный момент.

Любые идеи?

+0

У вас есть какие-либо ячейки в столбцах N: S, которые имеют текст вместо цифр или ошибок? –

+4

Либо у вас есть опечатка ('cells.Value2', а не' cell', которую вы используете в 'для каждого' - у вас нет переменной с именем' cells', объявленной где-либо), или у вас есть ошибочные данные в одной или нескольких ячейках. –

+3

Я думаю, что @KenWhite нашел источник вашей ошибки, но по соответствующей заметке, почему бы не условное форматирование? – Jeeped

ответ

3

У вас есть опечатка в вашем коде. Ваша переменная For Each равна cell, но ваш код использует cells.Value2.

For Each cell In Diff     ' Using cell (singular) 
    If cells.Value2 > 0.1 Then  ' Using cells (plural) 
     cell.Interior.ColorIndex = 0 
    End If 
Next 

Кроме того, я подозреваю, что у вас есть значения в вашем диапазоне (Diff), которые не являются числовыми или пусты.

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