Добрый день, проблема такая, что при выборе в listbox любой из критериев по которому нужно сделать сортировку, он сортирует одно и то же. [vba]
Код
Private Sub CmdCancel_Click() ' Выбрать диапазон для сортировки Range("A1:F7").Select ' Задать условие для сортировки данных: Столбец N пп сортировать по возрастанию Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes ' Сбросить переключатели tglOrder1.Value = False: tglOrder2.Value = False End Sub Private Sub CmdSort_Click() ' Параметры сортировки Dim sColumn1 As Integer, sColumn2 As Integer, sOrder1 As Integer, sOrder2 As Integer ' Выбрать колонки для сортировки sColumn1 = lstParam1.ListIndex + 2: sColumn2 = lstParam2.ListIndex + 2 ' Выбрать порядок сортировки If tglOrder1.Value = True Then sOrder1 = xlDescending Else sOrder1 = xlAscending If tglOrder2.Value = True Then sOrder2 = xlDescending Else sOrder2 = xlAscending ' Выбрать диапазон для сортировки Range("A1:F7").Select ' Задать условия для сортировки данных: Не включать заголовок в список сортировки Selection.Sort Key1:=Cells(2, sColumn1), Order1:=sOrder1, _ Key2:=Cells(2, sColumn2), Order2:=sOrder2, _ Header:=xlYes
End Sub Private Sub tglOrder1_Click() ' Меняем надпись на кнопке переключателя на противоположную If tglOrder1.Value = False Then tglOrder1.Caption = "По возрастающей" Else tglOrder1.Caption = "По убывающей" End If End Sub Private Sub tglOrder2_Click() ' Меняем надпись на кнопке переключателя на противоположную If tglOrder2.Value = False Then tglOrder2.Caption = "По возрастающей" Else tglOrder2.Caption = "По убывающей" End If End Sub
[/vba]
Код для книги: [vba]
Код
Private Sub Workbook_Open() ' Инициализируем Список параметров 1 If Worksheets(1).lstParam1.ListCount = 0 Then Worksheets(1).lstParam1.List = Array("Модель процессора", "Частота", "Тепловыделение", "Кэш", "стоимость") Worksheets(1).lstParam1.ListIndex = 0 End If ' Инициализируем Список параметров 2 If Worksheets(1).lstParam2.ListCount = 0 Then Worksheets(1).lstParam2.List = Array("Модель процессора", "Частота", "Тепловыделение", "Кэш", "стоимость") Worksheets(1).lstParam2.ListIndex = 0 End If End Sub
[/vba]
Добрый день, проблема такая, что при выборе в listbox любой из критериев по которому нужно сделать сортировку, он сортирует одно и то же. [vba]
Код
Private Sub CmdCancel_Click() ' Выбрать диапазон для сортировки Range("A1:F7").Select ' Задать условие для сортировки данных: Столбец N пп сортировать по возрастанию Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes ' Сбросить переключатели tglOrder1.Value = False: tglOrder2.Value = False End Sub Private Sub CmdSort_Click() ' Параметры сортировки Dim sColumn1 As Integer, sColumn2 As Integer, sOrder1 As Integer, sOrder2 As Integer ' Выбрать колонки для сортировки sColumn1 = lstParam1.ListIndex + 2: sColumn2 = lstParam2.ListIndex + 2 ' Выбрать порядок сортировки If tglOrder1.Value = True Then sOrder1 = xlDescending Else sOrder1 = xlAscending If tglOrder2.Value = True Then sOrder2 = xlDescending Else sOrder2 = xlAscending ' Выбрать диапазон для сортировки Range("A1:F7").Select ' Задать условия для сортировки данных: Не включать заголовок в список сортировки Selection.Sort Key1:=Cells(2, sColumn1), Order1:=sOrder1, _ Key2:=Cells(2, sColumn2), Order2:=sOrder2, _ Header:=xlYes
End Sub Private Sub tglOrder1_Click() ' Меняем надпись на кнопке переключателя на противоположную If tglOrder1.Value = False Then tglOrder1.Caption = "По возрастающей" Else tglOrder1.Caption = "По убывающей" End If End Sub Private Sub tglOrder2_Click() ' Меняем надпись на кнопке переключателя на противоположную If tglOrder2.Value = False Then tglOrder2.Caption = "По возрастающей" Else tglOrder2.Caption = "По убывающей" End If End Sub
[/vba]
Код для книги: [vba]
Код
Private Sub Workbook_Open() ' Инициализируем Список параметров 1 If Worksheets(1).lstParam1.ListCount = 0 Then Worksheets(1).lstParam1.List = Array("Модель процессора", "Частота", "Тепловыделение", "Кэш", "стоимость") Worksheets(1).lstParam1.ListIndex = 0 End If ' Инициализируем Список параметров 2 If Worksheets(1).lstParam2.ListCount = 0 Then Worksheets(1).lstParam2.List = Array("Модель процессора", "Частота", "Тепловыделение", "Кэш", "стоимость") Worksheets(1).lstParam2.ListIndex = 0 End If End Sub