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

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

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

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Подсчёт итоговых данных (макрос из Excel)  (Прочитано 1972 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Lero
Новичок
*
Offline Offline

Сообщений: 2


« Стартовое сообщение: 24 Декабрь 2015, 11:53 »

Помогите!! Офис переводят на openoffice или libreoffice

Есть макрос из exel и его надо переделать под эти программы.

Option Explicit

Sub getcliks()
Dim i&, j&, arr_list, dic, lastr&, arr
On Error GoTo ex
With l2
    lastr = .Range("a4").End(xlDown).Row
    If lastr = Rows.Count Then MsgBox "нет списка": GoTo ex
    arr_list = .Range("a4", "a" & lastr)
End With
ReDim Preserve arr_list(1 To UBound(arr_list), 1 To 3)
With l1
    lastr = .Range("a5").End(xlDown).Row
    If lastr = Rows.Count Then MsgBox "нет списка": GoTo ex
    arr = .Range("a5", "c" & lastr)
End With
ReDim Preserve arr(1 To UBound(arr), 1 To UBound(arr, 2) + 1)
For i = 1 To UBound(arr)
    For j = 1 To UBound(arr_list)
        If Trim(LCase(arr(i, 1))) Like "*" & Trim(LCase(arr_list(j, 1))) & "*" Then
            arr_list(j, 2) = arr_list(j, 2) + arr(i, 2)
            arr_list(j, 3) = arr_list(j, 3) + arr(i, 3)
            arr(i, 4) = arr_list(j, 1)
            Exit For
        End If
    Next j
Next i
With l2
    .Range("a4").Resize(UBound(arr_list), UBound(arr_list, 2)) = arr_list
End With
With l1
    .Range("a5").Resize(UBound(arr), UBound(arr, 2)) = arr
End With
ex: Set dic = Nothing
End Sub
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 24 Декабрь 2015, 14:16 »

Добро пожаловать на форум! И в офисы (openoffice или libreoffice - не важно) тоже добро пожаловать!
Это не очень сложная задача.

Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Lero
Новичок
*
Offline Offline

Сообщений: 2


« Ответ #2: 25 Декабрь 2015, 13:04 »

Добрый день!

Спасибо огромное. Открыла файл и получила ошибку. http://prntscr.com/9ibssx
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 25 Декабрь 2015, 13:21 »

Грустно... На скриншоте не виден номер строки, которая заартачилась - Basic её обычно выделяет и тычет красной стрелочкой (как на картинке).
Но, кажется, я догадываюсь, почему макрос сбойнул. Только проверить, к сожалению, не смогу - 4.4.6.3 у меня на машине уже давно нет...


* Место ошибки.png (3.01 Кб, 257x68 - просмотрено 14 раз.)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #4: 25 Декабрь 2015, 14:11 »

JohnSUN, а зачем макрос привязывать к событию "Выделенная область изменена"? ведь при любом телодвижении происходит перерасчёт (даже при переходе с одного листа на другой). Я бы отвязал, тем более от такого события.
Записан

JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #5: 25 Декабрь 2015, 14:19 »

Скорость выполнения достаточно высока, пересчёт практически не ощущается даже на больших объёмах данных.
Зато:
1) на листе Итоги постоянно имеем актуальные данные;
2) при вводе ошибочной номенклатуры сразу видим, что не угадали с категорией (например, глазами отличить "НР" от "HP" вряд ли кто сможет)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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