Здравствуйте! У меня почему-то не работает код.
Макрос должен отобрать уникальные даты, сортировать их и занести готовые даты в Combobox. По коде, вроде бы, все должно работать, но нужного результата нет. Подскажите, пожалуйста, что тут не так. Плюс даты должны отображатся в таком формате "ddd dd.mm.yy h:mm". Спасибо!
Макрос должен отобрать уникальные даты, сортировать их и занести готовые даты в Combobox. По коде, вроде бы, все должно работать, но нужного результата нет. Подскажите, пожалуйста, что тут не так. Плюс даты должны отображатся в таком формате "ddd dd.mm.yy h:mm". Спасибо!
Код |
---|
Option Explicit Option Base 1 Sub Ynicom() Dim arrData() As Date, myDictionary As Object, myCell As Range, Sh7 As Worksheet, lLastRow7A As Long Set Sh7 = Лист7 Set myDictionary = CreateObject("Scripting.Dictionary") lLastRow7A = Sh7.Cells(Rows.Count, 1).End(xlUp).Row 'Отбор уникальных значений из диапазона On Error Resume Next For Each myCell In Sh7.Range("A2:A" & lLastRow7A) myDictionary.Add CDate(myCell), CDate(myCell) Next On Error GoTo 0 ReDim Preserve arrData(myDictionary.Count) arrData = myDictionary.Items SortAr arrData CmB_Date.List = arrData 'не заполняется комбобокс CmB_Date.Value = Format(CmB_Date.Value, "ddd dd.mm.yy h:mm") 'нужен такой формат дат в комбобоксе End Sub Sub SortAr(arr() As Date) Dim Temp As Date, i As Long, j As Long For j = 2 To UBound(arr) Temp = arr(j) For i = j - 1 To 1 Step -1 If (arr(i) <= Temp) Then GoTo 10 arr(i + 1) = arr(i) Next i i = 0 10: arr(i + 1) = Temp Next j End Sub |