1

У меня есть таблица Excel с около 55 листами. Большинство листов имеют более 100 строк. Я создаю список номеров, которые соответствуют определенным критериям. Я просмотрел таблицу и выделил красным цветом все нужные мне цифры. Теперь я хочу составить список уникальных значений.

Я хотел бы сделать какой-нибудь код формулы / макроса / кода VB, который проходит через каждую из 55 таблиц и перечисляет все числа, которые выделены красным цветом. Есть ли способ сделать это, не просматривая каждый лист, не копируя красные ячейки и не вставляя их в список?

(Следующим шагом будет устранение повторяющихся значений, но я, вероятно, справлюсь с этим шагом.)

1 ответ1

0

Может как то так? Он будет искать во всем рабочем листе все используемые ячейки и строки. Те, которые соответствуют фону, являющемуся красным, будут скопированы в массив и позже выведены на новый WS. Я оставил сортировку / очистку повторных значений. Это не должно быть слишком сложно, хотя. Кстати, он будет выводить результаты в один ряд, может быть, вам лучше вывести его в столбце. Вероятно, путем создания 2D-массива с 1 значением в строке.

Я думаю, если это можно сделать с помощью приложения.FindFormat ...

Sub FindReds()
    Dim myArray() As Variant
    Dim i As Integer
    Dim outWS As Worksheet

    For Each ws In ActiveWorkbook.Worksheets
        For Each Cell In ws.UsedRange.Cells
            If Cell.Interior.ColorIndex = 3 Then
                ReDim Preserve myArray(i)
                myArray(i) = Cell.Value
                i = i + 1
            End If
        Next
    Next
    Set outWS = ActiveWorkbook.Sheets.Add()
    outWS.[A1].Resize(1, UBound(myArray)) = myArray

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .