Удаление\добавление ячейки в таблице

Автор Rindroid, 22 марта 2015, 10:03

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

Rindroid

Допустим, есть таблица в два столбца. Мне нужно удалить или добавить в один столбец ячейку так, чтобы произошёл сдвиг всех нижележащих ячеек. Это выполнимо?

rami

В меню "Вставка" —> "Ячейки..."

Rindroid

Цитата: rami от 22 марта 2015, 08:14В меню "Вставка" —> "Ячейки..."
Нет такого пункта меню, офис новейший. Если не понятно, таблица в райтере, а не калке.

Aleksandr H.

Цитата: Rindroid от 22 марта 2015, 13:47
Цитата: rami от 22 марта 2015, 08:14В меню "Вставка" —> "Ячейки..."
Нет такого пункта меню, офис новейший. Если не понятно, таблица в райтере, а не калке.
И в результате в таблице будет первый столбец, например, с 2 строк, а второй столбец с 3? :)
как вариант
1 шаг: вставить новую строку
2 шаг: вырезать-вставить значение которые "не должны сдвинуться" начиная с строки п.1

Rindroid

Цитата: Aleksandr H. от 22 марта 2015, 11:55И в результате в таблице будет первый столбец, например, с 2 строк, а второй столбец с 3?
Таблица на много сотен строк, мне нужно автоматический сдвиг всех ячеек по одному столбцу.

Бывает так, что абзацы оригинала и перевода получаются невпопад, именно для исправления этого нужен сдвиг. МС ворд худо-бедно умеет, но хотелось бы найти данную функцию в либре.

JohnSUN

Я для такой "работы" в своё время жал два раза Ctrl+Shift+End (первый выделял текст одной ячейки, второй - все ячейки второй колонки до конца), потом Shift+Del (вырезал выделение в буфер обмена, при этом курсор всё ещё оставался в последней ячейки таблицы), жал Tab (чтобы добавить новую строку), долго и нудно листал таблицу вверх, чтобы найти начало фрагмента и жал Shift+Insert (вставлял текст из буфера обмена на одну ячейку ниже).

Потом, само собой, это надоело, перенес таблицу в Calc (там ячейка вставляется всего двумя нажатиями - Ctrl+Plus и Enter), быстро всё сделал и вернул во Writer
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Rindroid

А как тогда перенести такую таблицу в калк и обратно? Пробовал копировать, не вышло.

kompilainenn

Цитата: Rindroid от 22 марта 2015, 17:41
А как тогда перенести такую таблицу в калк и обратно? Пробовал копировать, не вышло.
1. скопировать всю таблицу
2. в Кальк меню Правка-вставить как...- форматированный текст RTF
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

rami

Цитата: Rindroid от 22 марта 2015, 11:47Нет такого пункта меню, офис новейший.
Ну нет, так будет 8-) Назначьте клавиши или иконки на панели инструментов для макросов:
Sub SdvigVniz   Dim oVC, oCell, x%, y%, z%
oVC=ThisComponent.getCurrentController().getViewCursor()
If IsEmpty(oVC.Cell) Or IsEmpty(oVC.TextTable) Then Exit Sub
x=asc(oVC.Cell.CellName)-65
y=val(mid(oVC.Cell.CellName,2))-1
z=UBound(oVC.TextTable.DataArray)
oCell=oVC.TextTable.getCellRangeByPosition(x,y,x,z).DataArray
oVC.Cell.String=""
oVC.TextTable.getRows().insertByIndex(z+1,1)
oVC.TextTable.getCellRangeByPosition(x,y+1,x,z+1).DataArray=oCell
End Sub
————————————————————————————————————
Sub SdvigVverx   Dim oVC, oCell, x%, y%, z%
oVC=ThisComponent.getCurrentController().getViewCursor()
If IsEmpty(oVC.Cell) Or IsEmpty(oVC.TextTable) Then Exit Sub
x=asc(oVC.Cell.CellName)-65
y=val(mid(oVC.Cell.CellName,2))-1
z=UBound(oVC.TextTable.DataArray)
oCell=oVC.TextTable.getCellRangeByPosition(x,y+1,x,z).DataArray
oVC.TextTable.getRows().removeByIndex(z,1)
oVC.TextTable.getCellRangeByPosition(x,y,x,z-1).DataArray=oCell
End Sub

Ставите курсор в нужную ячейку (выделять не обязательно) , выполняете макрос SdvigVniz , чтобы вернуть всё обратно выполняете макрос SdvigVverx
Ячейку можно выбирать в любом столбце, количество столбцов максимум 26

Rindroid