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

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

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

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

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


« Стартовое сообщение: 13 Август 2017, 23:31 »

Здравствуйте

Хотел написать макрос для копирования одной ячейки в другую, подскажите пожалуйста как это сделать?
Прикрепляю пример для макроса

Спасибо  Улыбка

* TMP.ods (15.98 Кб - загружено 4 раз.)
Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 14 Август 2017, 08:07 »

Хотел написать макрос для копирования одной ячейки в другую, подскажите пожалуйста как это сделать?
Лучше копировать диапазон (он может состоять также из одной ячейки):
Код:
Sub Main
Dim oSheet        'Первый лист
Dim oRangeAddress 'Диапазон для копирования
Dim oCellAddress  'Адрес назначения (левый верхний угол)
oSheet=ThisComponent.Sheets(0)
oRangeAddress=oSheet.getCellRangeByName("A2:B40").RangeAddress
oCellAddress=oSheet.getCellRangeByName("D2").CellAddress
oSheet.copyRange(oCellAddress,oRangeAddress)
End Sub
Макрос можно повесить на событие листа "Содержимое изменено"
Записан

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

Сообщений: 715


« Ответ #2: 14 Август 2017, 08:52 »

Для коллекции - вариант с опцией совместимости кода. Работает точно так же, а пишется - быстрее.
Код:
Option VBASupport 1
Option Compatible

Sub Main
[E2:F40]=[A2:B40]
End Sub

Если нужно между листами, то соответственно просто добавляем индекс или имя листа:  
Sheets(1).[E2:F40]=Sheets("Лист1").[A2:B40]

А если нужно скопировать не формулу, а результат то:
[E2:F40].Value=[A2:B40]

Количество "ссылочных удобств", реализованных в LibreOffice в VBA-совместимом режиме исчисляется сотнями и нет причин не использовать их.   
« Последнее редактирование: 14 Август 2017, 09:01 от economist » Записан

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

Сообщений: 715


« Ответ #3: 14 Август 2017, 08:55 »

vk, очень хочется услышать от вас причину отказа/неиспользования Формул и Функций в Calc для таких банальных вещей типа копирования (отображения одного и того же в разных местах Книги Calc). Ведь это первое, что приходит в голову и ради этого делались эл. таблицы.
Записан

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

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


« Ответ #4: 14 Август 2017, 20:37 »

vk, очень хочется услышать от вас причину отказа/неиспользования Формул и Функций в Calc для таких банальных вещей типа копирования (отображения одного и того же в разных местах Книги Calc). Ведь это первое, что приходит в голову и ради этого делались эл. таблицы.
Так я и хотел использовать формулу но в моём случае формула не умеет работать с внешними данными возвращает 0 или пишет неправильный тип данных.

Отлично макрос работает
Макрос можно повесить на событие листа "Содержимое изменено"
А как мне макрос повесить на событие листа "Содержимое изменено" такого пункта я не нашел?




* События.jpg (95.34 Кб, 641x713 - просмотрено 7 раз.)

* Работа формулы с внешними данными.jpg (68.21 Кб, 687x287 - просмотрено 12 раз.)
« Последнее редактирование: 14 Август 2017, 22:08 от vk » Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #5: 14 Август 2017, 20:55 »

Нужно щелчком по ярлычку листа вызвать всплывающее меню:


* События листа.png (40.73 Кб, 299x363 - просмотрено 7 раз.)
Записан

vk
Новичок
*
Offline Offline

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


« Ответ #6: 16 Август 2017, 01:50 »

Подскажите код макроса для извлечения чисел из file.txt в диапазон A:A
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 715


« Ответ #7: 16 Август 2017, 09:11 »

Ну как так? Нафига здесь макросы??? Есть же:

1) Лист-Вставить лист-Из файла (в т.ч. TXT)
2) Лист-Ссылка на внешние данные
3) и еще минимум 3 способа, включая и формулу, и UDF, и  самый правильный - База данных ODB + мощь языка SQL. Такие данные доступны и во Writer (для отчетов, договоров, серийных писем итп).

Совет: OpenOffice|LibreOffice уже настолько большие продукты, что изучать их в одиночку - все равно что идти по леднику в связке с самим собой. Подключайте коллег/домашних/друзей - в офисах много полезнейших фишек, которые в одиночку даже перепробовать не всегда удается (до пятничного самозабытья :-)

« Последнее редактирование: 16 Август 2017, 09:12 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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