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

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

27 Июнь 2019, 07:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Макрос и Номера листов  (Прочитано 2326 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Rafik
Форумчанин
***
Offline Offline

Сообщений: 91


« Ответ #50003: 13 Февраль 2019, 08:44 »

Не совсем понятна задача. Насколько я понял:
1. имеется энное количество листов в книге
2. необходимо снабдить формулами активный лист, где в формулах будут фигурировать все остальные листы.
Можно попытаться сгенерить формулы так:

rem Получаем количество листов в текущем документе
listov = ThisComponent.getSheets().count
rem Получаем имя активного листа
imya = ThisComponent.CurrentController.getActiveSheet.Name
rem далее обходим в цикле листы и генерим формулу с именем каждого листа
for ii = 0 to listov - 1
    list = ThisComponent.Sheets(ii)
    rem будем брать только те листы, чьё имя не совпадает с активным
    if list.Name <> imya Then
        
         rem Соберём формулу в переменную
         formula1 =  "=ЕСЛИОШИБКА(ВПР(C11;" + list.Name + ".C$9:G$280;5;0);"")"

         rem сюда кусок макроса, отвечающего за заполнение ячейки и т.д.
         rem вместо строки: args2(0).Value = "=ЕСЛИОШИБКА(ВПР(C11;Лист2.C$9:G$280;5;0);"")"
         rem подставить такую: args2(0).Value = formula1

    end if
Next


« Последнее редактирование: 13 Февраль 2019, 08:46 от Rafik » Записан
Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

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