Страницы: 1
RSS
Отключение сообщения об ошибке и сортировка в выпадающем списке VBA
 
Здравствуйте. Есть макрос, который создает выпадающий список из выбранного диапазона. Основная проблема заключается в том, что при попытке ввода своего значения выдается ошибка о неверно введенном значении. Если бы это была проверка данных без использования макроса, ошибку можно было бы отключить, но в моем случае, при повторной активации макроса, ошибка появляется вновь.
Возможно ли в макросе отключить вывод ошибки?

Код
Sub List()
Dim uniq As New Collection
Dim iLastRow As Long
Dim i As Long
Dim arr()
iLastRow = Cells(Rows.Count, 3).End(xlUp).Row
iLastRow = IIf(iLastRow < 7, 7, iLastRow)
    For i = 7 To iLastRow
        On Error Resume Next
        uniq.Add Cells(i, 3), CStr(Cells(i, 3))
    Next
ReDim arr(1 To uniq.Count)
    For i = 1 To uniq.Count
        arr(i) = uniq(i)
    Next i
Cells(3, 3).Validation.Delete
Cells(3, 3).Validation.Add Type:=xlValidateList, Formula1:=Join(arr, ",")
End Sub


И второй вопрос, возможно ли добавить возможность сортировки по алфавиту в выпадающий список?
 
Код
Sub List()
Dim uniq As New Collection
Dim iLastRow As Long
Dim i As Long
Dim arr()
iLastRow = Cells(Rows.Count, 3).End(xlUp).Row
iLastRow = IIf(iLastRow < 7, 7, iLastRow)
    For i = 7 To iLastRow
        On Error Resume Next
        uniq.Add Cells(i, 3), CStr(Cells(i, 3))
    Next
ReDim arr(1 To uniq.Count)
    For i = 1 To uniq.Count
        arr(i) = uniq(i)
    Next i

With Cells(3, 3).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:=Join(arr, ",")
    .IgnoreBlank = True
    .InCellDropdown = True
    .ShowInput = True
    .ShowError = False
End With
End Sub
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
Hashtag написал:
И второй вопрос, возможно ли добавить возможность сортировки по алфавиту в выпадающий список?
1 вопрос одна тема. Поищите поиском сортировку одномерного массива и прицепите к своему коду (как отдельную процедуру).
 
Alemox
Большущее вам спасибо! Все работает!

V
Будем искать! ©
Страницы: 1
Наверх