Сортировка данных программным методом важная часть макроса - сортировка помогает ускорить процесс обработки данных и сразу представить их пользователю в удобном для восприятия виде.
Рассмотрим код:
Sub Sort
Dim oSheet
Dim oRange
Dim oSortFields(0) as new com.sun.star.util.SortField
Dim oSortDesc(0) as new com.sun.star.beans.PropertyValue
'Установка листа, где будет проводится сортировка, в данном случае лист 1
oSheet = ThisComponent.Sheets(0)
'Установка диапазона сортировки, важно - диапазон не должен включать в себя пустые столбцы
' вне диапазона (внутри можно)
oRange = oSheet.getCellRangeByName("A1:L65535")
'Указываем поле для сортировки, нумерация начинается с нуля
' В данном случае это первый столбец
oSortFields(0).Field = 0
' Устанавливаем порядок сортировки - True по возрастанию, False - по убыванию
oSortFields(0).SortAscending = True
'Служебные команды выполняющие непосредственно сортировку
oSortDesc(0).Name = "SortFields"
oSortDesc(0).Value = oSortFields()
oRange.Sort(oSortDesc())
End Sub
Обычно макрос сортировки вызывается как подпрограмма в основной макрос.
Задача: В файле Реестр документов по МХ выполнить сортировку программным способом:
а) по убыванию даты документа
б) по возрастанию суммы документа
Рассмотрим код:
Sub Sort
Dim oSheet
Dim oRange
Dim oSortFields(0) as new com.sun.star.util.SortField
Dim oSortDesc(0) as new com.sun.star.beans.PropertyValue
'Установка листа, где будет проводится сортировка, в данном случае лист 1
oSheet = ThisComponent.Sheets(0)
'Установка диапазона сортировки, важно - диапазон не должен включать в себя пустые столбцы
' вне диапазона (внутри можно)
oRange = oSheet.getCellRangeByName("A1:L65535")
'Указываем поле для сортировки, нумерация начинается с нуля
' В данном случае это первый столбец
oSortFields(0).Field = 0
' Устанавливаем порядок сортировки - True по возрастанию, False - по убыванию
oSortFields(0).SortAscending = True
'Служебные команды выполняющие непосредственно сортировку
oSortDesc(0).Name = "SortFields"
oSortDesc(0).Value = oSortFields()
oRange.Sort(oSortDesc())
End Sub
Обычно макрос сортировки вызывается как подпрограмма в основной макрос.
Задача: В файле Реестр документов по МХ выполнить сортировку программным способом:
а) по убыванию даты документа
б) по возрастанию суммы документа
Комментариев нет:
Отправить комментарий