Контакты

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (40)

Лучшие ответы пользователя

Все ответы (371)
  • Как оптимизировать код в VBA?

    1-е
    Оживить Excel (т.е. избавить его от зависания) Вы можете путем добавления перед каждой инструкцией "next ..." команды "DoEvents". Но хочу предупредить, что это увеличит общее время выполнения всего кода, т.е. эта команда заставляет Excel останавливать Ваш код и обрабатывать действия пользователя или системные, которые к этому моменту накопились.
    Пример
    ...
        DoEvents
    next x
    ...


    2-е
    Вам надо избавиться от частого обращения к ячейкам. Это делается путем копирования всего дампа данных за один раз.
    вместо
        For i = 1 To rows
            arrStreet(i - 1) = Cells(i, 71)
            arrHouse(i - 1) = Cells(i, 15)
            arrCampus(i - 1) = Cells(i, 34)
        Next i
    
    Используем
            'таким образом мы убираем цикл длиной в 180к *3 обращений к листу
            ' если протестировать затраты времени только на этом участке, экономия будет колоссальная
            arrStreet = range(Cells(1, 71), Cells(rows, 71))
            arrHouse = range(Cells(1, 15), Cells(rows, 15))
            arrCampus = range(Cells(1, 34), Cells(rows, 34))
            
           ' Но т.к. теперь мы имеем 2х мерные массивы, их надо обратить в одномерные, т.к. последующий код использует одномерные.
           arrStreet = WorksheetFunction.Transpose(arrStreet)
           arrHouse = WorksheetFunction.Transpose(arrHouse )
           arrCampus = WorksheetFunction.Transpose(arrCampus )


    3-е
    Далее по коду идут постоянные обращения к ячейкам внутри вложенных циклов
    5cc2af9e419d8174137510.jpeg

    В общем надо проанализировать алгоритм и убрать все циклические обращения к ячейкам. Заменить их обращениями к массивам, которые предварительно будут заполнены копированием дампов (как показано выше).
    Далее (возможно?!, если позволит алгоритм) уменьшить количество циклов за счет сортировки исходных данных и бинарного поиска по массивам.
    Для справки: Бинарный поиск находит данные примерно за 7-8 обращений к массиву, тогда как простой перебор (который организован у Вас) делает в худшем случае 180к обращений.

    Здесь есть простор для оптимизации.
    И сделайте бэкап перед редактированием.
    Ответ написан
  • Как перевести кнопки записей на русский язык?

    Скорее всего не полностью переведена тема , которую Вы используете
    тут есть несколько вариантов
    Для создания или изменения перевода:
    использовать программу переводов POEdit
    использовать плагин Loco Translate/ После сохранения перевода, плагин можно удалить.
    Ответ написан
  • Какую CMS выбрать и чем же так плох WooCommerce?

    Быстрый вариант в плане загрузки - это отлаженная система.
    С минимальными вложениями по времени - это хорошее знание CMS.
    Знаний в разработке не очень много, но быстро учусь. - это значит что будут ошибки новичка.
    Использование плагинов - это хорошо, но универсальность обратная сторона скорости.

    И Вы стоите перед выбором, значит хорошего знания какой либо cms пока нет. И у каждой из них есть свои плюсы и минусы. Вы перечитаете кучу материалов и все равно останетесь перед выбором.

    Мое предложение брать систему на которую есть много документации, желательно на русском. И читать, читать, читать.

    Лично я изучаю woocommrce + wordpress. Магазин на 600 товаров, около 6000 вариаций. Пока не встретил нерешаемых задач. Синхронизацию писал сам, наборы товаров- взял плагин и поправил под нужды и т.д.

    И еще один момент. Задачи всегда будут меняться. Сейчас вы говорите 1000 товаров, завтра надо будет 1500. Вы всегда найдете компромиссное решение.

    Успехов.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (26)