Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Установка текущего года из массива в Combobox. VBA
 
Здравствуйте. Подскажите, как правильно установить в комбобоксе текущий год из массива этого комбобокса. При запуске формы, в комбобоксе должен отобразиться текущий год с сохранением порядка дат(т.е. при вызове выпадающего списка после 2021 должен быть 2022 и т.д. )
Удалить точки в маске даты через Backspace. VBA
 
Здравствуйте. В примере код позволяет ввести маску даты формата xx.xx.xxxx. При удалении через клавишу Backspace удаляются только символы до точки, удалить точку не позволяет код. Помогите изменить код так, чтобы удалялись символы вместе с точками.
Уникальные значения в Combobox из таблицы на другом листе. VBA
 
Здравствуйте. Помогите получить уникальные значения в Combobox в  User form из второго столбца таблицы, которая находится на другом листе. Если возможно, в алфавитном порядке.
Передать данные из одной UserForm в другую. VBA
 
Здравствуйте. Каким образом можно передать данные из текст бокса одной формы в текст бокс другой?
В примере кнопкой форма1 активируем форму1, далее в появившейся форме1 активируем форму2.
В форме2 в текст бокс вводим текст и жмем Отправить в TextBox1.
В TextBox1 формы1 должен появиться текст из TextBox2 формы2.
Изменено: Hashtag - 23.08.2021 10:52:27
Подсветка дат в календаре. Условное форматирование
 
Здравствуйте. Необходимо подсветить даты в календаре с событием. С подсветкой текущей даты и подсветкой дат с событием проблем нет. Не работает условие для подсветки текущей даты с событием.
Код
=И(СЕГОДНЯ();НЕ(ЕОШИБКА(ПОИСКПОЗ(B4;ДВССЫЛ("Дата[Данные]");0))))
Генератор всех возможных комбинаций из набора символов, VBA или формулой
 
Здравствуйте. Помогите, пожалуйста, создать генератор всех возможных комбинаций из символов в ячейках A1:H1. Результаты можно выводить в столбец K. Пустые ячейки в A1:H1 необходимо пропускать. Решение возможно формулой или VBA.
Изменено: Hashtag - 01.06.2021 01:12:31
Поиск содержимого ячейки на другом листе по дабл клику. VBA
 
Здравствуйте. Помогите, пожалуйста сделать макрос, который при двойном клике по ячейке на Листе1, найдет такой же текст из этой ячейки на Листе2 и выберет эту ячейку.
Например: На Лист1 двойной клик по ячейке Арбуз, макрос перемещает на ячейку с текстом Арбуз на Лист2.
Смещение значений при двойном клике
 
Здравствуйте, недавно заметил особенность в Excel 2016. Если после выделения двойным щелчком ячейки с формулой, также двойным щелчком выделить другую ячейку со значением без формулы, то в режиме редактирования значение этой ячейки остается справа, но если также двойным выделить другую и все последующие ячейки, значения в режиме редактирования смещаются влево, причем вне зависимости, где находится ячейка. Если двойным кликнуть сначала по пустой ячейке, а после двойным по разным ячейкам со значениями без формул, значения в режиме редактирования остаются справа.
Хотелось бы узнать, только у меня такое происходит или это особенность Excel 2016?
Нумерация строк по содержанию в ячейках. VBA
 
Здравствуйте. Помогите, пожалуйста, доработать макрос. Необходимо, чтобы макрос нумеровал строки в столбце A при условии, если в соответствующей строке столбца E есть слово "Один", другие строки нужно пропускать.
Этот макрос нумерует все строки.
Код
Sub num()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim lr&
lr = Cells(Rows.Count, 2).End(xlUp).Row
lr = IIf(lr < 5, 5, lr)
Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).ClearContents
For i = 5 To lr
 If Application.WorksheetFunction.CountA(Rows(i)) <> 0 Then
  K = K + 1
 Cells(i, 1) = K
End If
Next i
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Как убрать выделение после сортировки на неактивном листе. VBA
 
Здравствуйте, в примере на Листе1, если нажать Sort2, произойдет сортировка на неактивном Листе2, при этом выделяется первая строка диапазона. Аналогично на Листе2, если нажать Sort1, произойдет сортировка на неактивном Листе1 и будет выделен весь диапазон. Возможно ли сделать так, чтобы при сортировке на неактивном листе никаких выделений не происходило?

Код
Sub Sort1()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim Sh As Range, iLastRow&
iLastRow& = Cells(ActiveWorkbook.Worksheets("Ëèñò1").Rows.Count, 8).End(xlUp).Row
iLastRow& = IIf(iLastRow < 5, 5, iLastRow)
    ActiveWorkbook.Worksheets("Ëèñò1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Ëèñò1").Sort.SortFields.Add Key:=Range("D5:D" & iLastRow), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Ëèñò1").Sort
        .SetRange Range("B5:H" & iLastRow)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Код
Sub Sort2()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim Sh As Range, iLastRow&
iLastRow& = Cells(ActiveWorkbook.Worksheets("Ëèñò2").Rows.Count, 9).End(xlUp).Row
iLastRow& = IIf(iLastRow < 5, 5, iLastRow)
    ActiveWorkbook.Worksheets("Ëèñò2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Ëèñò2").Sort.SortFields.Add Key:=Range("D5:D" & iLastRow), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Ëèñò2").Sort
        .SetRange Range("B5:I" & iLastRow)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Изменено: Hashtag - 12.12.2019 11:27:26
Сколько дней осталось до события, формула
 
Здравствуйте. Помогите, пожалуйста, доработать формулу, чтобы в E8 отображалось 29 дн. без 0 мес, а в E9 1 мес без 0 дн. При этом в Е7 должно оставаться 0 дн.
Код
=ЕСЛИ(РАЗНДАТ(C6;D8;"ym")=0;"";РАЗНДАТ(C6+1;D8;"ym")&" мес. ")&ЕСЛИ(D8-C6=0;"Сегодня";ЕСЛИ(РАЗНДАТ(C6;D8-1;"md")<0;"";РАЗНДАТ(C6;D8-1;"md")&" дн."))
Сколько месяцев и дней до дня рождения
 
Здравствуйте, есть формула, которая показывает каждый год сколько осталось дней до дня рождения.
Код
=ЕСЛИ(ЕПУСТО(C5);"";ВЫБОР(ЗНАК(ДАТА(ГОД(ТДАТА());МЕСЯЦ(C5);ДЕНЬ(C5))-СЕГОДНЯ())+2;ДАТА(ГОД(ТДАТА())+1;МЕСЯЦ(C5);ДЕНЬ(C5))-СЕГОДНЯ()&" дн.";"Сегодня";ДАТА(ГОД(ТДАТА());МЕСЯЦ(C5);ДЕНЬ(C5))-СЕГОДНЯ()&" дн."))

Будьте добры, помогите дополнить код,  чтобы результат выглядел таким образом: если до дня рождения остается менее месяца, результат вывести в виде 10 дн., если больше одного месяца, результат вывести в виде 1 мес. 10 дн.
Сортировка ListBox. VBA
 
Здравствуйте, каким образом можно отсортировать значения в ListBox от А до Я?

Код
Private Sub UserForm_Initialize()
Dim i As Long, j As Long
    For i = 7 To Cells(Rows.Count, 1).End(xlUp).Row
        If Cells(i, 1).Font.Color = RGB(255, 0, 0) Then
           ListBox1.AddItem i
           ListBox1.List(j, 1) = Cells(i, 1)
           j = j + 1
        End If
    Next
End Sub

Private Sub ListBox1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
    Cells(ListBox1.Value, 1).Select
End Sub
Заполнение UserForm по условию поиска. VBA
 
Здравствуйте, подскажите, как сделать, чтобы при запуске формы производился поиск значений с определенным цветом в диапазоне A7:A и  ListBox заполнялся найденными значениями.
И второе, чтобы при клике по найденным значениям в списке ListBox происходил переход к ячейке с таким значением.

Код
Private Sub ListBox1_Change()
      ListBox1.Clear

   j = 0
   
      For i = 7 To Cells(Rows.Count, 1).End(xlUp).Row
          If Cells(i, 1).Font.Color = RGB(255, 0, 0) Then
             ListBox1.AddItem i
             ListBox1.List(j, 1) = Cells(i, 1)
             j = j + 1
          End If
      Next
      Exit Sub
   End If

End Sub

Private Sub ListBox1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
    Cells(ListBox1.Value, 1).Select
End Sub


Такой код не работает.
Ошибка проверки данных. VBA
 
Здравствуйте, в примере  в ячейке C9 есть выпадающий список, реализованный vba. При заполненных строках уникальными значениями в кол-ве более 88, при попытке открыть книгу  возникает ошибка "Обнаружено содержимое, которое не удалось прочитать" с предложением восстановления. После восстановления появляется сообщение "Удаленное свойство: Проверка данных из части /xl/worksheets/sheet1.xml".
Если в примере в строку после 88 ввести 89 и более, возникает ошибка, если оставить 88 - ошибки нет. Ошибка появляется только в момент запуска книги, в процессе работы ошибок не возникает.

Подозреваю, что дело в коде выпадающего списка. Будьте добры, посмотрите, что с ним может быть не так. Может возможно сделать, чтобы excel игнорировал выпадающий список в моменте запуска книги.
Код
Sub List1()
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 < 10, 10, iLastRow)
    For i = 10 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(9, 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 - 26.04.2019 17:52:59
Установка и снятие защиты листа по условию. VBA
 
Здравствуйте. При запуске книги, защита листа сразу устанавливается, так и должно быть.
Подскажите, пожалуйста, что нужно изменить в коде, чтобы в процессе работы с листом защита устанавливалась при клике по любой ячейке, но только после  клика или нескольких кликов по любой из ячеек диапазона C4:D4 (при клике по  C4:D4 защита снимается)? Чтобы при каждом клике вне диапазона C4:D4 защита не устанавливалась.

Например: запускаем книгу, кликаем по любой ячейке, кроме C4:D4 - защита не должна сниматься или устанавливаться. Далее кликаем по любой из ячеек C4:D4 - защита снимается. Затем кликаем один раз по любой ячейке , кроме C4:D4 - защита устанавливается. Кликаем второй и все последующие разы по любой ячейке , кроме C4:D4 - защита не должна сниматься или устанавливаться.

Сейчас код выглядит так, но защита ставится при каждом клике вне C4:D4:

Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   
If Not Intersect(Target, Range("C4:D4")) Is Nothing Then
   Worksheets(1).Unprotect Password:="1"
End If

If Intersect(Target, Range("C4:D4")) Is Nothing Then
   Worksheets(1).Protect Password:="1", UserInterfaceOnly:=True, _
   AllowFormattingCells:=True, AllowFormattingColumns:=True, _
   AllowFormattingRows:=True, AllowFiltering:=True
End If

End Sub
Изменено: Hashtag - 11.04.2019 14:55:27
Отображение и удаление даты в строках по условию. VBA
 
Здравствуйте. Помогите реализовать следующую задачу:
Необходимо, чтобы в колонке F отображалась текущая дата, при условии, что в строке напротив хотя бы одна из  ячеек С:E заполнена. Если ячейки C:E из строки пусты, нужно удалить дату.
Код ниже не работает:
Код
Private Sub Worksheet_Change(ByVal Target As Range)

    g = Target.Row
    If Cells(g, 3).Resize(, 3).Value > 0 Then
        Intersect([F:F], Target.EntireRow).Value = Now
    Else
        Intersect([F:F], Target.EntireRow).Value = Empty
    End If

End Sub
Изменить цвет шрифта в очищенных ячейках. VBA
 
Здравствуйте. Подскажите пожалуйста, как можно изменить код, чтобы после очистки от значения одной или нескольких ячеек диапазона C4:F20, цвет шрифта очищенных ячеек менялся с красного на черный?
Ниже код, который меняет цвет только для одной очищенной ячейки.
Код
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, [C4:F20]) Is Nothing Then
  If Cells(Target.Row, Target.Column) = 0 Then
    Cells(Target.Row, Target.Column).Font.Color = RGB(0, 0, 0)
  End If
End If

End Sub
Значение ячейки равно значению ячейки с гиперссылкой. VBA
 
Здравствуйте, уважаемые специалисты форума. В примере есть макрос, который копирует содержимое ячеек C2:F2 в ячейки ниже.
Возможно ли его доработать, чтобы значение ячейки E2 копировалось вместе с гиперссылкой?

Код
Sub iCopyr()
Dim a&, b&, c&
For a = 1 To 5
  c = Cells(Rows.Count, a + 1).End(xlUp).Row
  c = IIf(c < 4, 4, c + 1)
  If c > b Then b = c
Next

If Len([C2] & [D2] & [E2]) > 0 Then
  Cells(b, 3).Resize(, 4).Value = [C2:F2].Value
End If

End Sub
Как сменить русскую раскладку на английскую? VBA
 
Здравствуйте. Есть код, который при условии, что ячейка B2 не пуста, вызывает диалоговое окно вставка гиперссылки.
Проблема в том, что окно запускается только при английской раскладке. Как возможно переключить раскладку с русской на английскую перед вызовом  окна вставки гиперссылки средствами VBA?

Код
Private Sub Worksheet_Change(ByVal Target As Range)

If Len([B2]) > 0 Then
  [B2].Select
  SendKeys ("^k")
End If

End Sub
Выпадающий список из значений, прописанных в коде. VBA
 
Здравствуйте. Есть код, который формирует выпадающий список из заданного диапазона.
Каким образом его можно переделать, чтобы он не обращался к ячейкам D2:F2, а чтобы он брал значения для списка, прописанные в своем собственном коде?
Например, прописать в коде что-то вроде: 1 значение = [B4] & " " & "!", 2 значение = [C4] & " " & "!", 3 значение = [D4] & " " & "!".

Код
Sub ListB()
Dim uniq As New Collection
Dim iLastCol As Long
Dim i As Long
Dim Arr()
iLastCol = Cells(2, Columns.Count).End(xlToLeft).Column
iLastCol = IIf(iLastCol < 4, 4, iLastCol)
Debug.Print iLastCol
    For i = 4 To iLastCol
        On Error Resume Next
        uniq.Add Cells(2, i), CStr(Cells(2, i))
    Next
ReDim Arr(1 To uniq.Count)
    For i = 1 To uniq.Count
        Arr(i) = uniq(i)
    Next i
With Cells(2, 2).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:=Join(Arr, ",")
    .IgnoreBlank = True
    .InCellDropdown = True
    .ShowInput = True
    .ShowError = False
End With
End Sub
Перенос текста и автоподбор высоты на объемах. VBA
 
Здравствуйте. Для переноса текста и автоподбора высоты в ячейках использую WrapText и AutoFit. На больших объемах применение WrapText и AutoFit увеличивают время работы других используемых макросов в 2-3 раза.
Возможно ли ускорить работу WrapText и AutoFit и каким образом?
Код
Range("B5:E8").Rows.AutoFit
Range("B5:E8").Rows.WrapText = True
Изменено: Hashtag - 31.03.2019 16:37:17
Как ускорить работу макроса заливки ячеек?
 
Здравствуйте. Есть макрос, который при вводе значения в ячейку E2, подсвечивает красным похожие значения в диапазоне C7:E. Он работает исправно, но крайне медленно. При объеме данных в 20 000 строк, где в каждой строке присутствует искомый элемент, время работы макроса составляет от 5 сек и выше. Есть предположение, что с помощью массива работа макроса будет быстрее.
Поэтому прошу помощи у специалистов в доработке кода макроса, чтобы обращение шло не к ячейкам, а к массиву.
Код
Sub iCol()
Application.EnableEvents = False

Dim iRng As Range, iAddr$
If Len([E2]) > 0 Then
  With Range("C7:E" & ActiveSheet.UsedRange.Rows.Count)
    Range("C7:E" & ActiveSheet.UsedRange.Rows.Count).Font.Color = RGB(0, 0, 0)
    Set iRng = .Find([E2], After:=.Cells(.Cells.Count), LookIn:=xlValues)
    If Not iRng Is Nothing And Len([E2]) > 0 Then
        iAddr = iRng.Address
        Do
            iRng.Font.Color = RGB(218, 16, 16)
            Set iRng = .FindNext(iRng)
        Loop While Not iRng Is Nothing And iRng.Address <> iAddr
    End If
    End With
End If
If Len([E2]) = 0 Then
 Range("C7:E" & ActiveSheet.UsedRange.Rows.Count).Font.Color = RGB(0, 0, 0)
End If

Application.EnableEvents = True

End Sub
Сортировка значений без перемещения заливки ячеек. VBA
 
Здравствуйте, уважаемые специалисты. Подскажите, каким образом можно осуществить сортировку значений по возрастанию- убыванию, при этом не перемещая заливку (и формат ячеек в целом)? В моем примере, если нажать на сортировку по убыванию, происходит сортировка значений, но при этом смещается заливка ячеек, которая должна оставаться на месте.

Код
Sub Макрос2()
'
' Макрос2 Макрос

    Range("B6:F14").Select
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("B6:B14"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист1").Sort
        .SetRange Range("B6:F14")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1").Select
End Sub
Подсветка текста дубликатов, по значению из одной ячейки. VBA
 
Здравствуйте, помогите решить задачу средствами VBA. При вводе значения в ячейку E2, значения в диапазоне C7:E должны выделяться красным цветом.
В примере есть макрос, который выполняет поиск дубликатов по значению из E2, а точнее, протягивает формулу в диапазоне A7:A, которая осуществляет поиск в диапазоне C7:E. Возможно его нужно доработать.
Код
Sub Fill()
Application.ScreenUpdating = False
If [E2] <> 0 Then
Dim SRow&
Dim SRowD&
Dim SRowE&
SRow = Cells(Rows.Count, 3).End(xlUp).Row
SRowD = Cells(Rows.Count, 4).End(xlUp).Row
SRowE = Cells(Rows.Count, 5).End(xlUp).Row
If SRow < SRowD Then SRow = SRowD
If SRow < SRowE Then SRow = SRowE
Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).ClearContents
SRow = IIf(SRow < 7, 7, SRow)
 If SRow > 7 Then
    Range("A7").FormulaArray = "=--ISNA(MATCH(999,SEARCH(R2C5,RC[2]:RC[4]),1))"
    Range("A7").Copy: Range("A8:A" & SRow).PasteSpecial Paste:=xlPasteFormulas
 End If
    Application.CutCopyMode = False
    [E2].Select
Else
    Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).ClearContents
End If
    Application.ScreenUpdating = True
End Sub
Изменено: Hashtag - 15.03.2019 12:12:26
Смена цвета в ячейках на примере одной ячейки или при выборе в диалоговом окне
 
Здравствуйте, помогите в решении задачи. Необходимо быстро поменять цвет границы и заливки в ячейках и фигурах с красным текстом, красной границей и синей заливкой, на примере одной ячейки или при выборе в диалоговом окне, при этом не выбирая вручную изменяемую ячейку. Возможно ли решить такое на VBA или другими методами?

Для смены цвета текста, границы и заливки вижу 2 варианта решения, после чего цвет в других ячейках должен меняться на выбранный.
1. Выбор цвета в диалоговом окне UserForm.
или
2. Заменить цвет текста, границы и заливки в ячейке C10.
Поиск и удаление пустых строк на листе. VBA
 
Здравствуйте, помогите пожалуйста доработать код. Он отвечает за удаление всех пустых строк на листе.

Код
Sub DeleteEmptyRows()
    Dim r As Long, rng As Range
    For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
        If Application.CountA(Rows(r)) = 0 Then
            If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r))
        End If
        Debug.Print r
    Next r
    If Not rng Is Nothing Then rng.Delete
    ActiveWorkbook.Save
End Sub


Задача заключается в следующем:
1. Заменить способ определения последней строки через UsedRange, поскольку он может определить строку с заливкой, как не пустую.
Например на Find.

Код
Set rowvalue = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
r = rowvalue.Row

2. Определение и удаление пустых строк должно начинаться с 7 строки.
Динамический список. Как ускорить макрос на больших объёмах
 
Здравствуйте. С помощью специалистов форума сделал динамический список с добавлением данных, нумерацией списка, сортировкой. Весь код корректно работает.
Вопрос заключается в скорости работы кода. Скажем, при 1000 - 5000 строках дискомфорта не возникает, но если это 20 000, как в примере, обработка может занимать 4-7 секунд.
1. Возможно ли оптимизировать код, чтобы он работал быстрее или это нерешаемая проблема при больших объемах данных?
2. Что по вашему мнению нужно изменить в коде для ускорения его работы?
3. Какие изменения нужно внести, чтобы при переключении между листами код не срабатывал, а только при изменениях в ячейках?
Закрасить чередующиеся строки до последней занятой VBA
 
Здравствуйте, есть макрос, который закрашивает чередующиеся  строки. Возможно ли добавить в макрос свойство, которое будет закрашивать строки в диапазоне C7:F до последней заполненной строки, а при очистке последней строки очищать заливку освободившейся строки?

Код
Option Explicit
 
Sub Col()
    Dim i As Long
    With [C7:F20]
        For i = 1 To .Rows.Count Step 2
            .Rows(i).Interior.Color = RGB(189, 215, 238)
        Next i
    End With
End Sub
Отключение сообщения об ошибке и сортировка в выпадающем списке 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


И второй вопрос, возможно ли добавить возможность сортировки по алфавиту в выпадающий список?
Страницы: 1 2 След.
Наверх