2015-08-24 3 views
1

Долгое время здесь я был в тупике, пытаясь закодировать некоторые VBA, чтобы выделить из столбцов B в S на другом листе для всех строк, которые имеют значение в столбце S больше, чем H10 на другом листе. Этот код работает нормально:VBA Excel, чтобы выделить диапазон на другом листе

Dim i As Long 
For i = 2 To Rows.Count 
If Worksheets("Initial Data").Cells(i, 19).Value > Worksheets("Inputs").Range("H10").Value Then 
Worksheets("Initial Data").Cells(i, 19).Interior.ColorIndex = 4 
End If 
Next i 
Worksheets("Initial Data").Activate 

Это будет выделять каждую ячейку в столбце S, которая требуется. То, что я хочу сделать, это выделить клетки от B к S, что-то вроде этого:

Dim i As Long 
For i = 2 To Rows.Count 
If Worksheets("Initial Data").Cells(i, 19).Value > Worksheets("Inputs").Range("H10").Value Then 
Worksheets("Initial Data").Range(.Cells(i, 2), .Cells(i, 19)).Interior.ColorIndex = 2 
End If 
Next i 
Worksheets("Initial Data").Activate 

... но это не работает, я получаю сообщение об ошибке выполнения. Это так расстраивает, что я сделал большую часть тяжелого материала!

О, и до того, как кто-либо предложит условное форматирование, данные, которые читает sub, только что вставляются каждый раз, так что нет. спасибо за любой вход!

+0

Данные .Paste <в лист или вручную вставлен? Даже если его вставить, вы все равно можете сделать условное форматирование. Вам нужно только убедиться, что значения не вставлены ничем иным. – DragonSamu

ответ

0

Попробуйте удалить точку перед .Cells(i, 2) УВОЙ не знают, какие клетки вы имеете в виду

изменение Worksheets("Initial Data").Range(.Cells(i, 2), .Cells(i, 19)).Interior.ColorIndex = 2 в Worksheets("Initial Data").Range(Cells(i, 2), Cells(i, 19)).Interior.ColorIndex = 2

или использовать With ->msdn:

With Worksheets("Initial Data") 
    .Range(.Cells(i, 2), .Cells(i, 19)).Interior.ColorIndex = 4 
End With 
+0

Первый не сработал, но заявление С работало отлично, спасибо! Раньше я пробовал с заявлением, но без него. – Snaaaaaaake

+0

Вы можете также проверить это «Рабочие листы» («Исходные данные»). Диапазон (Рабочие листы («Исходные данные»). Ячейки (i, 2), Рабочие листы («Начальные данные»). Ячейки (i, 19)). ColorIndex = 2' – Dawid

+2

@Dawid Без 'With ...' ваше (первое) предложение будет работать тогда и только тогда, когда 'Initial Data' является активным листом –

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