По сути, у меня есть один лист в Excel с огромной диаграммой, на которой написано, что продукт XX запущен, и какие типы проверок он должен был выполнить, прежде чем пройти. Я хочу скопировать каждую строку с проверкой Цвета, однако это может быть в разных столбцах внизу строки, так как это может быть не первая проверка, которая была выполнена.
Я уже прошел несколько различныхвещи, сталкивающиеся с similair и другие проблемы: .AutoFilter: независимо от того, какой столбец фильтруется первым, он удаляется из других возможных столбцов, в которых может быть отмечена проверка «Цвет». Я создавал один из них, но потом продумал логику и понял, что это не сработает.
Dim wsData As Worksheet
Dim wsDest As Worksheet
Dim ColorAP() As String
Set wsData = Sheets("Reactor 8 New Way") 'Copying FROM this worksheet (it contains your data)
Set wsDest = Sheets("Color AP Analysis")
ReDim ColorAP(1 To 3)
ColorAP(1) = "Color AP"
ColorAP(2) = "Color AP"
ColorAP(3) = "Color AP"
With wsData.Range("A1", wsData.Cells(wsData.Rows.Count, "A").End(xlUp))
.AutoFilter 1, ColorAP, xlFilterValues 'Filter using the array, this avoids having to do a loop`
'Copy the filtered data (except the header row) and paste it as values
.Offset(1).EntireRow.Copy
wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial xlPasteValues
Application.CutCopyMode = False 'Remove the CutCopy border
.AutoFilter 'Remove the filter
End With
Проблема, с которой я сталкиваюсь при каждой попытке, заключается в невозможности просмотреть каждый столбец перед копированием. Я действительно не хочу делать огромный вложенный оператор if с циклом, который проверяет каждый столбец в строке, чтобы увидеть, говорит ли он «Цвет». Я бы лучше проверил каждый столбец, чтобы найти все «Цвет» и скопировал эти строки, однако некоторыепродукты будут проверяться на «Цвет» более одного раза, и я не хочу дубликатов. Кроме того, для скопированных строк я не хочу, чтобы все столбцы на странице были только первые 26. Я делаю это на рабочем ноутбуке, который не способен выполнять сотни строк кода, поэтому на всех других моих кодах япопытаться найти самый маленький способ сделать это. Изображение листа ниже