Соберём для начала здесь в одном месте, потом будем смотреть, что с ними делать...
Первые две ошибки локализовать не удаётся...
1.
Сброс настроек. Подмечено, что в некоторых случаях (точно локализовать ошибку не удаётся) Calc сбрасывает ранее установленные настройки, как то:
- фиксацию строк и столбцов;
- скрытие сетки листа;
- комментарии ячеек.
Последнее особенно неприятно, поскольку требует обращения к копии файла
для восстановления данных.
Сброс происходит на всех листах документа (комментарии к ячейкам пропадают не все, однако).
Возможно, это старая ошибка, так как я с ней сталкиваюсь давно (с версии 6).
В последнем случае сброс настроек произошёл ориентировочно при настройке параметров печати листа ("Изменение диапазонов печати/Повторять строки").
2.
Сбой в режиме редактирования ячейки. Иногда в режиме редактирования исчезает текст в активной ячейке (не видно ничего), однако в строке формул он отображается. При сохранении данных текст в ячейке "проявляется", но при дальнейшем редактировании любой ячейки текст виден только в строке формул. Перезагрузка приложения решает проблему с отображением текста в редактируемой ячейке.
3.
"Неправильное" окно диалога «Промежуточные итоги». Открывается окно очень большого размера (по ширине) в модальном режиме. На работе (Windows 10) окно ещё помещается на широком экране, а на ноутбуке (Ubuntu 18.04) ничего не видно (скриншот экрана прилагается). Воспользоваться невозможно. Разрешение экрана дома и на работе – full hd.
Решение. Разработка макроса под конкретную задачу.
4.
Проблема с комментарием к ячейке. Комментарий добавляется и изменяется крайне медленно, окошко внезапно закрывается... И я не знаю, как подогнать ширину по тексту. В результате "освоил" программное добавление комментария к активной ячейке. 2 скриншота прилагаются. Как сделать отображение комментария в одну строку с использованием интерфейса пользователя? Установка соответствующего флажка ни к чему не приводит.
Решение.
' Creates a new annotation.
' oCell - the cell object that will contain the annotation.
' sText - contains the annotation text.
' BUG?: Свойство <AnnotationShape.TextAutoGrowHeight [Default is True]> работает не так, как ожидалось.
' Поэтому вставляем комментарий с пробелом вместо текста (главное, чтобы ширина текста не превышала ширину фигуры),
' а полное значение вводим после установки свойства <AnnotationShape.TextAutoGrowWidth:=True [Default is False]>,
' иначе высота фигуры после не сокращается до одной строки, и это некрасиво выглядит.
Sub CreateAnnot(oCell As Object, sText As String)
' At first pass a space instead of sText.
ThisComponent.Sheets(oCell.CellAddress.Sheet).Annotations.insertNew(oCell.CellAddress, " ")
With oCell.Annotation.AnnotationShape
' On edit, the auto grow feature will not grow the objects wider than the value of TextMaximumFrameWidth property.
.TextMaximumFrameWidth = 25000
.TextMinimumFrameWidth = 1000
.TextAutoGrowWidth = True
.CharFontName = "Arial"
.CharHeight = 10
.String = sText
End With
End Sub
Вот это вот свойство "TextMaximumFrameWidth" и не даёт свернуть комментарий в одну строку. Но через интерфейс пользователя как это сделать? По логике вещей, если установлен флажок "Подогнать ширину по тексту", то что-то должно происходить. Или я не прав?
5.
Не работает сортировка, списки выбора заголовков полей заполнены именем и значениями первого поля таблицы. Диапазон содержит столбец с единой формулой массива.
Итак, предлагается выбор только по первому столбцу или элементам данных этого столбца. Причём выводится полный набор значений этого столбца с дубликатами значений, это очевидная ошибка. К сожалению, не могу сделать скриншот с раскрытым списком, ибо в этом режиме "Print Screen" не работает.
Комментарий. Странное поведение Calc'а было вызвано наличием в диапазоне данных крайнего справа столбца с формулой массива (одной на весь диапазон столбца). Calc'у следовало что-то сообщить пользователю, но он "ушёл в себя". Учитывая, что достаточно установить курсор в любую ячейку диапазона, и он при вызове диалога сортировки будет автоматически выделен полностью, то трудно было догадаться, в чём причина такого поведения.
Этот вопрос с сортировкой уже поднимался
здесь, и
патч был, но реализация неполная: странное поведение полей со списком выбора и нуль информации для юзера.
Решение. После выбора вручную диапазона данных, кроме последнего столбца, поля со списком выбора заголовков столбцов заполнились правильно (то есть заполнились заголовками всех столбцов, а не только первого и всеми его значениями), и сортировка прошла успешно.
6. Ошибка вычислений в сводной таблице.
Диапазон содержит вспомогательный столбец с критериями "И/ИЛИ" (стандартный приём), поскольку сводная таблица не позволяет фильтровать по критерию "ИЛИ", как это делает, к примеру, расширенный фильтр. Но дело не в этом. Разрешены регулярные выражения, и они используются в указанном столбце. Однако сводная таблица при наложении фильтра по указанному столбцу выдаёт неверный результат, как если бы регулярные выражения в формулах были не разрешены (хотя флажок стоит). Исходный диапазон данных аналогично выдаёт тот же неверный результат, но если только флажок сбросить (запретить регулярные выражения). Таким образом, отфильтровать данные в сводной таблице с критерием "ИЛИ" по вспомогательному столбцу мне не удалось. Странно и другое: вспомогательный столбец уже содержит вычисленные данные, и непонятно, зачем сводная таблица их пересчитывает...
Предположение. Сводная таблица не имеет флажка "Использовать регулярные выражения", как в параметрах фильтров, и работает неправильно, если они используются в формулах исходных данных при разрешённых регулярных выражениях в формулах.
Решение. Ограниченное использование сводных таблиц. Замена их менее гибким сервисом - совмещёнными операциями.Примеры... примеры... позднее