Здравствуйте.Как в LibreOffice Calc упорядочить листы по алфа?...

Автор ForumOOo (бот), 27 октября 2018, 08:58

0 Пользователи и 1 гость просматривают эту тему.

ForumOOo (бот)

Компонент: Calc
Версия продукта: 5.x
Сборка: LibreOffice
ОС: Win10

Здравствуйте.Как в LibreOffice Calc упорядочить листы по алфавиту? Спасибо.

--
Подпись: Алевтина

JohnSUN

Здравствуй, Алевтина!
Вот такой макрос сделает всю работу
Sub SortSheets
Dim oSheets As Variant, oNames As Variant, sName As String
Dim nCount As Long, i As Long, j As Long
oSheets = ThisComponent.getSheets() ' Получить все листы текущей книги
nCount = oSheets.getCount() - 1 ' Номер последнего листа в книге
If nCount = 0 Then Exit Sub ' Если в книге всего один лист, то нечего и сортировать
oNames = oSheets.getElementNames() ' Названия всех листов книги в массиве oNames
Rem Используем какую-нибудь не очень сложную сортировку:
For i = 1 To nCount
For j = 0 To nCount - i
If oNames(j) > oNames(j+1) Then                             
sName = oNames(j)
oNames(j) = oNames(j+1)
oNames(j+1) = sName
End If
Next j
Next i
Rem И теперь передвигаем листы внутри oSheets по их номерам в массиве oNames
For i = 0 To nCount
oSheets.moveByName(oNames(i), i)
Next i
End Sub
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

economist

Если листов совсем мало - можно перетащить ярлычки с нажатой лев. кн. мыши.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...