Hello!
Я все еще новичок в VBA, но, используя почти все свои мозговые клетки, мне удалось создать приведенный ниже код.
Тем не менее, когда я выполняю макрос, Excel, кажется, работает целую вечность, но ничего не добивается. Я не получаю никакого сообщения об ошибке, но кажется, что Excel застрял в бесконечном цикле.
Я подозреваю, что где-то в моем коде есть существенный недостаток, но я не могу понять, где.
Sub Makro_color_cells()
Application.ScreenUpdating = False
Dim groupfrom As Range
Dim groupto As Range
Dim groupfinal As Range
lastrow = Cells(Rows.Count, "B").End(xlUp).Row
x = 4
t = 0
Do While x < lastrow
Set groupfrom = Cells(x - 1, "F")
Cells(x - 1, "B").Activate
Do While ActiveCell = ActiveCell.Offset(1, 0)
t = t + 1
ActiveCell.Offset(1, 0).Activate
Loop
x = x + t
Set groupto = Cells(x - 1, "F")
Set groupfinal = Range(groupfrom, groupto)
If Not (groupfinal.Find("Storage") Is Nothing) Then
Range("groupfinal").Interior.ColorIndex = 3
End If
t = 0
Set groupfrom = Nothing
Set groupto = Nothing
Set groupfinal = Nothing
Loop
Application.ScreenUpdating = True
End Sub
Цель кода - покрасить некоторые ячейки в столбце F на основе некоторых критериев:
Столбец B содержит числа с дубликатами, расположенными рядом друг с другом. Рассмотрим все строки с одинаковыми значениями в столбце B как «группу».
Теперь, если одна или несколько строк в «группе» имеют текст «Хранилище» в столбце F, то для всех строк в этой «группе» должен быть окрашен их столбец F.
Основная идея моего кода состоит в том, чтобы найти «группу» и использовать groupfrom
и groupto
, чтобы установить диапазон groupfinal
, равный ячейкам группы в столбце F.
Затем используйте метод range.find
, чтобы проверить наличие «Хранилища».
Я пытался найти и устранить неисправность, но безуспешно.
Есть идеи, почему код не работает?
Я ценю любую помощь, и я открыт для идей с подходом, отличным от моего кода.
Заранее спасибо!