Удаление ячеек со сдвигом влево

Автор joshua, 20 сентября 2017, 15:49

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

joshua

Добрый день. Господа, выручайте.
Мне нужно выделить некий диапазон ячеек, допустим А3:А6 и удалить их со сдвигом влево. Как сделать это вручную я знаю. Но как это сделать макросом?

joshua

Нашел

Dim Doc As Object
Dim Sheet As Object
Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress

Doc = ThisComponent
Sheet = Doc.Sheets(0)

CellRangeAddress.Sheet = 0
CellRangeAddress.StartColumn = 1
CellRangeAddress.StartRow = 1
CellRangeAddress.EndColumn = 2
CellRangeAddress.EndRow = 2

Sheet.removeRange(CellRangeAddress, com.sun.star.sheet.CellDeleteMode.LEFT)


Правда я то хотел удалить имея
oRange1 = oDoc1.Sheets (1).getCellRangeByName ("A3:A6")
но как удалить использую oRange1 не понял.

Меня вообще ужасно путает что доступ к областям можно получить десятью разными способами, и так почти во всем

JohnSUN

Ну, всё верно
Sheet.removeRange( Sheet.getCellRangeByName("A3:A6").getRangeAddress(), com.sun.star.sheet.CellDeleteMode.LEFT)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

rami

Цитата: joshua от 20 сентября 2017, 14:32Меня вообще ужасно путает что доступ к областям можно получить десятью разными способами, и так почти во всем
По началу страшно, аж жуть :o, но потом все привыкают 8-).

У объекта Sheet.getCellRangeByName("A3:A6") есть метод .getRangeAddress() который возвращает объект типа com.sun.star.table.CellRangeAddress

Этот же объект можно получить через Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress с последующим заполнением параметров.

joshua

Спасибо господа, вроде начинает проясняться потихоньку)