Я пытаюсь создать функцию vba в excel, которая сортирует столбец по цвету ячеек, а затем выводит результаты в другое место. Что у меня в настоящее время дает мне ошибкуСортировка по цвету и вывод в другое место
Function SortColor(colorSearchRange As Range, colorToSearch As Range, outputRange As Range)
Dim colorValue As Integer
Dim coloredItems(150) As String
Dim index As Integer
colorValue = colorToSearch.Interior.ColorIndex
index = 0
Set cell = colorSearchRange
For Each cell In colorSearchRange
If cell.Interior.ColorIndex = colorValue Then
coloredItems(index) = cell.Value
index = index + 1
End If
Next cell
Range(outputRange & UBound(coloredItems) + 1) = WorksheetFunction.Transpose(coloredItems)
End Function
Я новичок в визуальном базовом. Будем очень благодарны за любую помощь.
* В настоящее время выдается сообщение об ошибке * - какова ошибка и когда это происходит (какая строка)? ... на первый взгляд, эта строка 'Range (outputRange & UBound (coloredItems) + 1)' не является правильным sytnax для аргумента диапазона –
@ScottHoltzman Я получаю сообщение об ошибке «значение, используемое в формуле, является неверными данными тип". Я не уверен, в какой строке это происходит, хотя ... Я прошел через отладчик, и похоже, что массив цветных элементов строит правильно, однако он не выводится надлежащим образом на outputRange –
Это то, о чем говорил Скотт. Вы должны переписать эту финальную строку, потому что метод Range вызывается с неправильным типом аргумента. Я бы предложил 'Range (outputRange, outputRange.Offset (UBound (colorItems))), который даст вам все данные в столбце, начинающемся с outputRange (что, как я думаю, вы хотели сделать). – Mikegrann