Макрос скопировать число в ячейку?

Автор vk, 13 августа 2017, 23:31

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

vk

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

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

Спасибо  :)

rami

Цитата: vk от 13 августа 2017, 21:31Хотел написать макрос для копирования одной ячейки в другую, подскажите пожалуйста как это сделать?
Лучше копировать диапазон (он может состоять также из одной ячейки):
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

#2
Для коллекции - вариант с опцией совместимости кода. Работает точно так же, а пишется - быстрее.

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-совместимом режиме исчисляется сотнями и нет причин не использовать их.   
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

economist

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

vk

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

Отлично макрос работает
Цитата: rami от 14 августа 2017, 08:07Макрос можно повесить на событие листа "Содержимое изменено"
А как мне макрос повесить на событие листа "Содержимое изменено" такого пункта я не нашел?



rami

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

vk

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

economist

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

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

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

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