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

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

23 Ноябрь 2017, 15:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Программная активация ячейки LibreOffice Calc  (Прочитано 756 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ost
Пользователь
**
Offline Offline

Сообщений: 71


« Стартовое сообщение: 16 Июнь 2017, 12:51 »

Доброго.
Задача: активировать (не выделить диапазон в одну ячейку, а установить курсор) ячейку на листе с помощью макроса.

Активировать лист получилось строкой

Код:
ThisComponent.CurrentController.ActiveSheet = oSheet

Подскажите, пож., как активировать ячейку.
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 294


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 16 Июнь 2017, 14:09 »

Так:
Код:
Sub Main
oCell=ThisComponent.Sheets(0).getCellRangeByName("B2")
ThisComponent.CurrentController.select(oCell)
End Sub
Записан

economist
Ветеран
*****
Offline Offline

Сообщений: 745


« Ответ #2: 16 Июнь 2017, 14:34 »

В верх модуля добавляете
Option VBASupport 1

И тогда всё просто и кратко:
Sheets(1).Activate
Sheets("Лист1").Activate
nameActiveSheet=ActiveSheet.Name

А с ячейками так:
[A5].Activate
[РУССКОЕ_ИМЯ_ЯЧЕЙКИ_A5].Activate
[A5:B600].Select
Cells(5,1).Activate
Range("A5").Activate
adrActCell=ActiveCell.Address

То есть почти вся мощь языка VBA - к вашим услугам, внутри кода на StarBasic. И тонны интернет-информации на любой чих.

Основное преимущество VBA перед SB - это краткость и "умолчальность". В StarBasic их просто нет.   
« Последнее редактирование: 16 Июнь 2017, 14:47 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
ost
Пользователь
**
Offline Offline

Сообщений: 71


« Ответ #3: 2 Июль 2017, 16:29 »

Так:
Код:
Sub Main
oCell=ThisComponent.Sheets(0).getCellRangeByName("B2")
ThisComponent.CurrentController.select(oCell)
End Sub
Этим способом выделяется ячейка: ее фон закрашивается цветом выделения. Задача была активировать ячейку без ее выделения: курсорная рамка вокруг ячейки есть, но ее выделения (окраски ее фона) нет.
Но для моих задач Ваш способ подойдет. Спасибо.
Записан
ost
Пользователь
**
Offline Offline

Сообщений: 71


« Ответ #4: 2 Июль 2017, 16:32 »

В верх модуля добавляете
Option VBASupport 1
Макрос написан на StabBasic. Переделывать сейчас затратно. В дальнейшем попробую использовать "Option VBASupport 1". Спасибо.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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