Мне нужен VBA, чтобы найти различные цветные ячейки в диапазоне, затем вставить формулу в следующие 2 ячейки ниже и продолжить до конца листа [закрыто]

Вопрос или проблема

В настоящее время я пытаюсь оптимизировать процесс, где у нас есть выгрузка данных из 10000 строк или более, в которой каждый заказ клиента отделен цветной строкой. Я знаю шестнадцатеричный код для используемого цвета, но не знаю, как поступить дальше.

Мне нужно найти первую строку в колонке B, которая окрашена в цвет #ccffff, затем спуститься на 1 ячейку вниз к следующей строке и вставить формулу, затем нужно спуститься еще на одну ячейку вниз к следующей строке и вставить другую формулу. Затем я должен повторить тот же процесс для оставшегося диапазона до конца листа.

Кто-нибудь может помочь с работоспособным кодом для выполнения этой задачи, пожалуйста?

Данные выглядят следующим образом.

ДАННЫЕ ПОД ВОПРОСОМ

Спасибо заранее.

Ответ или решение

Конечно! Ниже вы найдете код VBA, который поможет вам найти цветные ячейки в диапазоне, а затем вставить формулы в следующие две ячейки вниз. Код будет проверять цвет ячейки в столбце B и, если цвет соответствует указанному хекс-коду (#ccffff), будет вставлять формулы.

Sub PasteFormulasBelowColoredCells()
    Dim ws As Worksheet
    Dim cell As Range
    Dim lastRow As Long
    Dim colorToFind As Long
    Dim formula1 As String
    Dim formula2 As String

    ' Задайте рабочий лист, на котором необходимо выполнить операцию
    Set ws = ThisWorkbook.Sheets("Sheet1") ' Замените "Sheet1" на имя вашего листа

    ' Укажите цвет (хекс код, преобразованный в Long)
    colorToFind = RGB(204, 255, 255) ' #ccffff

    ' Укажите формулы, которые необходимо вставить
    formula1 = "=SUM(A1:A10"      ' Замените на вашу формулу
    formula2 = "=AVERAGE(A1:A10"  ' Замените на вашу формулу

    ' Найти последнюю заполненную строку в столбце B
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

    ' Пройти по всем ячейкам в диапазоне B
    For Each cell In ws.Range("B1:B" & lastRow)
        ' Проверить, является ли цвет ячейки цветом, который мы ищем
        If cell.Interior.Color = colorToFind Then
            ' Вставить первую формулу в следующую ячейку вниз
            cell.Offset(1, 0).Formula = formula1
            ' Вставить вторую формулу в ячейку ниже
            cell.Offset(2, 0).Formula = formula2
        End If
    Next cell
End Sub

Объяснение кода:

  1. Инициализация: Сначала мы задаем рабочий лист, где будет выполняться операция. Также устанавливаем цвет, который необходимо найти, и формулы, которые хотите вставить.

  2. Поиск последней строки: Используем End(xlUp).Row, чтобы найти последнюю заполненную строку в столбце B.

  3. Цикл по ячейкам: Мы перебираем все ячейки в диапазоне B с первой строки до последней. Если цвет ячейки совпадает с заданным, то мы вставляем формулы в следующие две ячейки вниз.

Обязательно замените формулы на те, которые вам нужны, и укажите правильное имя листа. Запустите макрос, и он выполнит все необходимые действия. Если будут дополнительные вопросы или потребуется помощь с кодом, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...