Дано книга с несколькими листами Лист "НД" ячейка d10 контрольное значение Лист "Данные" несколько сотен строк i Необходимо Сравнить значение НД" ячейка d10 с значением Листа "Данные" ячейки Ji/Hi i -номер строки Если значение "НД" ячейка d10 больше полученного частного то строка выделяется красным Необходимо пройти все строки где есть значения ячеек Ji и Hi
Спасибо
Добрый день!
Возникла задачка, помогите ее решить.
Дано книга с несколькими листами Лист "НД" ячейка d10 контрольное значение Лист "Данные" несколько сотен строк i Необходимо Сравнить значение НД" ячейка d10 с значением Листа "Данные" ячейки Ji/Hi i -номер строки Если значение "НД" ячейка d10 больше полученного частного то строка выделяется красным Необходимо пройти все строки где есть значения ячеек Ji и Hi
Добрый день! Файл с желаемым результатом прикрепил, к сожалению по ряду причин я не могу использовать условное форматирование и создавать дополнительные столбцы,
Добрый день! Файл с желаемым результатом прикрепил, к сожалению по ряду причин я не могу использовать условное форматирование и создавать дополнительные столбцы,agh1511
Sub u_457() u_1 = Cells(Rows.Count, "a").End(xlUp).Row Range("a1:n" & u_1).Interior.Pattern = xlNone u_2 = Sheets("НД").Range("d10").Value For Each u_3 In Range("h1:h" & u_1) If u_3 = 0 Then u_4 = 0 Else u_4 = u_3.Offset(0, 2) / u_3 End If u_5 = u_3.Row If u_4 < u_2 Then Range("a" & u_5 & ":n" & u_5).Interior.Color = 255 End If Next End Sub
[/vba]
[vba]
Код
Sub u_457() u_1 = Cells(Rows.Count, "a").End(xlUp).Row Range("a1:n" & u_1).Interior.Pattern = xlNone u_2 = Sheets("НД").Range("d10").Value For Each u_3 In Range("h1:h" & u_1) If u_3 = 0 Then u_4 = 0 Else u_4 = u_3.Offset(0, 2) / u_3 End If u_5 = u_3.Row If u_4 < u_2 Then Range("a" & u_5 & ":n" & u_5).Interior.Color = 255 End If Next End Sub
Sub u_457() Application.ScreenUpdating = False 'отключение обновления экрана u_1 = Cells(Rows.Count, "a").End(xlUp).Row 'последняя заполненная строка столбца А Range("a1:n" & u_1).Interior.Pattern = xlNone 'очистим предыдущую заливку u_2 = Sheets("НД").Range("d10").Value 'значение ячейки D10 листа "НД" For Each u_3 In Range("h1:h" & u_1) 'пройдемся циклом по ячейкам диапазона H1:Hпоследняя ячейка If u_3 = 0 Then 'если значение очередной ячейки в цикле =0, u_4 = 0 'тогда результат деления =0, чтоб избежать ошибки Else u_4 = u_3.Offset(0, 2) / u_3 'делим значение ячейки смещенное на 2 столбца вправо (т.е. J) на H End If If u_4 < u_2 Then 'если результат деления меньше значение ячейки D10 листа "НД": u_5 = u_3.Row '№ очередной (проверяемой циклом) строки Range("a" & u_5 & ":n" & u_5).Interior.Color = 255 'красим диапазон в данной строке End If Next Application.ScreenUpdating = True 'включение обновления экрана End Sub
[/vba]надеюсь понятно.
я кое-что добавил и переместил немного. [vba]
Код
Sub u_457() Application.ScreenUpdating = False 'отключение обновления экрана u_1 = Cells(Rows.Count, "a").End(xlUp).Row 'последняя заполненная строка столбца А Range("a1:n" & u_1).Interior.Pattern = xlNone 'очистим предыдущую заливку u_2 = Sheets("НД").Range("d10").Value 'значение ячейки D10 листа "НД" For Each u_3 In Range("h1:h" & u_1) 'пройдемся циклом по ячейкам диапазона H1:Hпоследняя ячейка If u_3 = 0 Then 'если значение очередной ячейки в цикле =0, u_4 = 0 'тогда результат деления =0, чтоб избежать ошибки Else u_4 = u_3.Offset(0, 2) / u_3 'делим значение ячейки смещенное на 2 столбца вправо (т.е. J) на H End If If u_4 < u_2 Then 'если результат деления меньше значение ячейки D10 листа "НД": u_5 = u_3.Row '№ очередной (проверяемой циклом) строки Range("a" & u_5 & ":n" & u_5).Interior.Color = 255 'красим диапазон в данной строке End If Next Application.ScreenUpdating = True 'включение обновления экрана End Sub