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

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

20 Май 2019, 22:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Изменение формата ячейки для выбраного диапазона [РЕШЕНО]  (Прочитано 2111 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Aleksandr H.
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Wild West Ukraine
Сообщений: 96

glory to nation


WWW
« Стартовое сообщение: 15 Октябрь 2014, 19:55 »

В соседней теме решали как пофиксить проблему когда в ячейку вписали формулу, а формат етой ячейки "Текстовый". Приходится менять тип ячейки и редактировать формулу - rami предлагает переписать формулу, я же переписываю последний символ. А что если написать макроса и навесить его на комбинацию клавиш?  Крутой Написал макроса, который делает нужные действия, но только с активной (выбраной) ячейкой. Как сделать что-бы действие макроса распространялось на выделеный диапазон ячеек? Или есть решение вопроса стандартными средствами scalc'a?
Код:
sub ChangeCellFormat
dim oCell as object
dim cellFormula as string
oCell = ThisComponent.getCurrentSelection
cellFormula = oCell.formula
oCell.NumberFormat = 1
oCell.Formula = cellFormula
end sub
« Последнее редактирование: 15 Октябрь 2014, 22:08 от Aleksandr H. » Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 15 Октябрь 2014, 21:38 »

Я не знаю зачем эти игры с форматами, Calc сам безошибочно определяет, где число, а где текст.
Вот макрос для диапазона:
Код:
Sub ChangeCellsFormat
dim oCell as object
dim cellFormula as string
oCell = ThisComponent.CurrentSelection
For i=0 To UBound(oCell.FormulaArray)
For j=0 To UBound(oCell.FormulaArray(i))
cellFormula = oCell.FormulaArray(i)(j)
oCell.NumberFormat = 1
oCell.getCellByPosition(j,i).Formula = cellFormula
Next
Next
End Sub
Этот макрос пробегает по всем ячейкам выбранного прямоугольного диапазона без проверки содержимого ячейки.
Записан

Aleksandr H.
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Wild West Ukraine
Сообщений: 96

glory to nation


WWW
« Ответ #2: 15 Октябрь 2014, 22:07 »

Проблема не в выборе текст-число, а в том чтобы не было как на этом видео.
По сабжу - макрос работает как нужно
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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