Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

14 Октябрь 2019, 21:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Формула для вставки в столбец пустых ячеек  (Прочитано 2613 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Privezu
Новичок
*
Offline Offline

Сообщений: 4


« Стартовое сообщение: 29 Июль 2015, 17:57 »

Уже неделю ежедневно прихожу к мысли, что необходима автоматизация такого типа: добавление в столбец с данными пустых ячеек, но подобного решения найти не получается. Решил обратиться за вашей помощью.
Пример: есть столбец с данными 1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7
Вопрос: существует ли формула копирования, способная оставлять в соседнем столбце 3 пустых ячейки после ячейки, содержащей значение "4"?
Если важно, то пользуюсь OpenOffice 4.1.1

* Поиск формулы.ods (9.7 Кб - загружено 11 раз.)
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 29 Июль 2015, 18:42 »

В B38 у тебя опять четвёрка. А после B5 - только две пустых ячейки... Опечатка?

А зачем это надо?

Впрочем, это не важно... Формулой это сделать сложно. Но макросом - очень легко и быстро.
В общем, выделяешь одну любую ячейку со значением, после которого нужны пробельные строки (в твоем примере это A5, A12, A19, A26 или A33), и выполняешь макрос
Код:
Sub insertEmptyRows
REM Вставляет по три пустых строки после каждого значения, выделенного в момент запуска макроса
Dim oCurrentSelection As Variant
Dim oColumn As Variant
Dim oSDescr As Variant
Dim oSResult As Variant
Dim i As Long
Dim nRow As Long
Dim oRows As Variant

  oCurrentSelection = ThisComponent.getCurrentSelection()  ' Если выделил больше одной ячейки - макрос не виноват!
  
  oColumn = oCurrentSelection.getColumns().getByIndex(0)  ' Колонка с выделенной (активной) ячейкой
  oRows = oColumn.getRows()                ' Все строки колонки (листа)

  oSDescr = oColumn.createSearchDescriptor()        ' Поисковый дескриптор всего с одним параметром -
  oSDescr.setSearchString(oCurrentSelection.getString())  ' значением из выделенной ячейки
  
  oSResult = oColumn.findAll(oSDescr)            ' Хотя бы одно значение будет найдено
  For i = oSResult.getCount()-1 To 0 Step -1        ' Снизу вверх по всем найденным ячейкам
    nRow = oSResult.getByIndex(i).getCellByPosition(0, 0).getCellAddress().Row+1
    oRows.insertByIndex(nRow, 3)            ' Собственно вставка строк
  Next i
End Sub
« Последнее редактирование: 29 Июль 2015, 20:15 от JohnSUN » Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Privezu
Новичок
*
Offline Offline

Сообщений: 4


« Ответ #2: 30 Июль 2015, 11:50 »

Верно, опечатка - торопился вчера.
Спасибо за решение. Я не случайно спрашивал про формулу - просто я макросами не умею пользоваться  В замешательстве
Попробую научиться в таком случае)
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 30 Июль 2015, 11:57 »

Да там просто...
Жмешь Alt+F11 и выскакивает окно со списком имеющихся доступных сейчас) макросов.
В дереве слева выделяешь раздел Мои макросы - Standard и жмешь кнопку Создать
Открывается окно редактора макросов с уже вставленными строками кода
Код:
Sub Macro1

End Sub
или что-то в этом роде.
Вместо этих трех строк копипастишь текст макроса с форума... Всё готово!
Возвращаешься в свою таблицу, тычешь мышкой в какую-то ячейку с четвёрочкой и опять жмешь Alt+F11 - выскакивает то же самое окно со списком макросов.
Выделяешь нужный макрос и теперь жмёшь кнопку Выполнить
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Privezu
Новичок
*
Offline Offline

Сообщений: 4


« Ответ #4: 30 Июль 2015, 12:21 »

По сути, ничего сложного. Но у меня макрос не исполняется (вложение)


* принт.jpg (86.16 Кб, 1366x768 - просмотрено 23 раз.)
Записан
Privezu
Новичок
*
Offline Offline

Сообщений: 4


« Ответ #5: 30 Июль 2015, 12:24 »

Понял ошибку - выделял несколько ячеек
Всё работает просто
Спасибо!
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!