Формула для вставки в столбец пустых ячеек

Автор Privezu, 29 июля 2015, 17:57

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

Privezu

Уже неделю ежедневно прихожу к мысли, что необходима автоматизация такого типа: добавление в столбец с данными пустых ячеек, но подобного решения найти не получается. Решил обратиться за вашей помощью.
Пример: есть столбец с данными 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

JohnSUN

#1
В 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
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Privezu

Верно, опечатка - торопился вчера.
Спасибо за решение. Я не случайно спрашивал про формулу - просто я макросами не умею пользоваться  :-\
Попробую научиться в таком случае)

JohnSUN

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

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

Privezu

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

Privezu

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