Добрый день Помощи прошу. В столбце 2 некоторые ячейки пустые и встречаются от 4 до нижней не пустой строки. В столбце 3 идут только цифры (в общем формате ячеек - пока не разбирался чем это чревато). Если в столбце 2 встречаем пустую ячейку, то нужно суммировать значение из столбца 3 со значением из нижней ячейки, если в столбце 2 также нижняя ячейка пустая и так до того момента пока встретим в столбце 2 не пустую ячейку. Полученную сумму нужно сверить со значением верхней ячейки столбца 3, и если она не совпадает, то значения закрашиваем фоном. Т.е. например: ячейки 5, 2 и 6, 2 пустые, и поэтому значения ячеек 5, 3 и 6, 3 суммируем, и полученный результат сравниваем со значением ячейки 4, 3. В случае не совпадения значения в столбце 3 заливаем желтым.
Добрый день Помощи прошу. В столбце 2 некоторые ячейки пустые и встречаются от 4 до нижней не пустой строки. В столбце 3 идут только цифры (в общем формате ячеек - пока не разбирался чем это чревато). Если в столбце 2 встречаем пустую ячейку, то нужно суммировать значение из столбца 3 со значением из нижней ячейки, если в столбце 2 также нижняя ячейка пустая и так до того момента пока встретим в столбце 2 не пустую ячейку. Полученную сумму нужно сверить со значением верхней ячейки столбца 3, и если она не совпадает, то значения закрашиваем фоном. Т.е. например: ячейки 5, 2 и 6, 2 пустые, и поэтому значения ячеек 5, 3 и 6, 3 суммируем, и полученный результат сравниваем со значением ячейки 4, 3. В случае не совпадения значения в столбце 3 заливаем желтым.timo64uk
Sub u_91() Application.ScreenUpdating = False a = Range("c3").End(xlDown).Row b = Application.CountA(Range("b4:b" & a)) d = 4 For c = 1 To b e = Application.Match("*", Range("b" & d & ":b" & a), 0) d = d + e f = Application.Match("*", Range("b" & d & ":b" & a), 0) g = d - 1 If c <> b Then h = d + f - 2 Else h = a End If If g <> h Then i = Range("c" & g).Value j = Application.Sum(Range("c" & g + 1 & ":c" & h)) If i <> j Then Range("c" & g + 1 & ":c" & h).Interior.Color = 65535 End If Next End Sub
[/vba]
[vba]
Код
Sub u_91() Application.ScreenUpdating = False a = Range("c3").End(xlDown).Row b = Application.CountA(Range("b4:b" & a)) d = 4 For c = 1 To b e = Application.Match("*", Range("b" & d & ":b" & a), 0) d = d + e f = Application.Match("*", Range("b" & d & ":b" & a), 0) g = d - 1 If c <> b Then h = d + f - 2 Else h = a End If If g <> h Then i = Range("c" & g).Value j = Application.Sum(Range("c" & g + 1 & ":c" & h)) If i <> j Then Range("c" & g + 1 & ":c" & h).Interior.Color = 65535 End If Next End Sub
Спасибо большое. Очень помогли Я немного начал сам, но тут же закончил.
[vba]
Код
Dim x As Integer LastRow = Cells(Rows.Count, "C").End(xlUp).row For x = 4 To LastRow If Range("B" & x) = "" And Range("C" & x).Value Like "*" And Range("B" & x + 1) = "" Then para = Range("C" & x - 1) ' нашёл значение с которым сравнивать подмассив End If If Range("B" & x) = "" And Range("C" & x).Value Like "*" And Range("B" & x + 1) = "" Then ceta = Range("C" & x) + Range("C" & x + 1) ' нашёл подмассив для суммирования End If If para <> ceta Then Range("C" & x - 1).Interior.Color = 13431551 End If Next
Спасибо большое. Очень помогли Я немного начал сам, но тут же закончил.
[vba]
Код
Dim x As Integer LastRow = Cells(Rows.Count, "C").End(xlUp).row For x = 4 To LastRow If Range("B" & x) = "" And Range("C" & x).Value Like "*" And Range("B" & x + 1) = "" Then para = Range("C" & x - 1) ' нашёл значение с которым сравнивать подмассив End If If Range("B" & x) = "" And Range("C" & x).Value Like "*" And Range("B" & x + 1) = "" Then ceta = Range("C" & x) + Range("C" & x + 1) ' нашёл подмассив для суммирования End If If para <> ceta Then Range("C" & x - 1).Interior.Color = 13431551 End If Next