Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 След.
Формат ячеек. Числовой, с разделителями разрядов и без хвостовых нулей
 
Доброго времени суток, Планетяне!

Чё-то никак допереть не могу — можно ли (и как) составить маску формата ячейки, чтобы одновременно и разряды отображались "### ### ###" и знаки после запятой, но без хвостовых нулей ("### ### ### ##0.00 не подходит")

P.S.: в общем формате при длинном числе вообще хвостов не видно и кажется, что одно и то же (это не так и там числа, как в "хотелось бы")
Изменено: Jack Famous - 2 Дек 2019 16:45:48
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Математика. Сравнение. Отклонение между двумя числами, Как быстро и правильно узнать
 
Доброго времени суток, Планетяне!
В таблицах часто возникает необходимость сравнения контрольных чисел и вычисление отклонения в %

Пока что родил только такую формулу:
=ЕСЛИ([@1]>[@2];
ОКРУГЛ([@1]/[@2]-1;4);
ОКРУГЛ([@2]/[@1]-1;4))


Вопрос: есть ли какая-нибудь встроенная функция для такого анализа?
P.S.: может я не совсем корректно сравниваю?…
Изменено: Jack Famous - 26 Ноя 2019 16:04:34
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Изображения. Почему прикрепить «*.JPG» можно, а «*.JPEG» нельзя
 
Вопрос в названии темы. Будет ли исправлено или игра не стоит свеч?  :)
Изменено: Jack Famous - 25 Ноя 2019 09:35:58
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Прогрессия (или нет). Олимпиадная задача для первоклассников
 
Доброго времени суток, Планетяне!
Что за зверь и как решить (в Excel, разумеется)?  :D
Изменено: Jack Famous - 25 Ноя 2019 09:32:19
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Текст по столбцам, VBA-аналоги встроенных инструментов
 
Доброго времени суток, Планетяне!

Начинаю новый цикл тем по эффективной реализации на VBA популярных инструментов Excel.
Замечания и предложения приветствуются
Процедура + функция
Изменено: Jack Famous - 15 Ноя 2019 13:54:54
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Преобразование диапазона чисел в их последовательность
 
Доброго времени суток, Планетяне!

Может не очень хорошо искал, но примеры нашёл только в архиве и на сайте Дмитрия Щербакова
Вот решил сделать и выложить на общий суд свою версию. Конструктивная критика приветствуется  ;)
2 функции
Сортер
Пример использования
нужно вызывать только одну функцию: PRDX_List_FromString

Примеры:
Применение функций для получения перечня строк/столбцов из адреса диапазона
Изменено: Jack Famous - 21 Окт 2019 12:40:24
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Изменения в дизайне основной ветки
 
Доброго времени суток, Планетяне!

У меня глючит хром или у нас изменения в правой части?
Изменено: Jack Famous - 10 Окт 2019 11:17:32
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Проверка с помощью УФ нескольких масок на содержание в строке
 
Доброго времени суток, Планетяне!
Тема, вроде популярная, но я нашёл только вот это решение.

Мне нужно настроить правило УФ, которое бы подсвечивало ячейку, если в ней содержится хотя бы одно значение из заданных.
Пока остановился на вот такой штуке =(ЕОШ(ПОИСК("петя";$A2))+ЕОШ(ПОИСК("витя";$A2)))<2 — то есть мы проверяем формулу ПОИСК на ошибку, если есть, то значение не найдено, если есть у всех, то сумма этих проверок = сумме условий, а всё, что меньше - значит хоть одно выполнилось и не вызвало ошибку. Можно как-то проще сделать или быстрее/правильнее?

Основная проблема при подходе "в лоб" = ИЛИ(ПОИСК("петя";$A2);ПОИСК("витя";$A2)), это то, что при отсутвии значения как раз будет ошибка #ЗНАЧ и всё условие НЕ ВЫПОЛНЕНО…
Изменено: Jack Famous - 16 Сен 2019 14:01:16
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Почему у некоторых команд VBA нет подсказок?
 
Доброго времени суток, Планетяне!

Примеры команд:
    • Exit Sub/Function (решено)
    • LBound/UBound
    • ActiveSheet. (после точки нет подсказок)

Позднее связывание не интересует, т.к. там нет подсказок из-за того, что не видна библиотека и это вроде "удалённой" с ней работы.
Изменено: Jack Famous - 6 Сен 2019 11:05:50
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Получение массива из диапазона листа, игнорируя скрытые ячейки
 
Доброго времени суток, Планетяне!

Вопрос не новый, но хотелось бы прояснить:
обычно, чтобы получить массив из значений только видимых ячеек выделенного диапазона, Selection.SpecialCells(xlVisible) копируют и вставляют на временный лист и потом с этого листа забирают данные в массив обычным способом

Можно ли как-то ускорить этот процесс?
Я подумал вот о чём: мы же когда копируем видимые ячейки в буфер, то там уже все эти данные есть. Совершенно незачем создавать лист, вставлять данные на него, забирать их в массив и удалять лист. Вот только как эти данные достать из буфера?
Изменено: Jack Famous - 29 Авг 2019 13:30:20
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Форма с поиском по маске. Поиск и вставка значений активного столбца
 
Доброго времени суток, Планетяне!

Надстройка создана на основе формы с поиском и служит для поиска и вставки одного или нескольких значений из активного столбца по аналогии с инструментом из PLEX'а Выпадающий список с автопоиском

v 1.0
Инфа по подключению есть в соседней теме (не хочу копипаст устраивать), да и принцип полностью одинаков для версии фильтра 1.1, кроме действий с выбранными из формы значениями. Там активный столбец по ним фильтруется, а тут они вставляются в ячейку через разделитель (если 2 и более) или просто вставляется, если выбрано одно
Вызов в примере (модуль книги)
Единственный немного отличающийся модуль «FRM_Search_FindInActiveColumn»

Последняя актуальная версия надстройки/кода теперь в родительской теме
Изменено: Jack Famous - 3 Сен 2019 14:47:56
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Форма с поиском по маске. Фильтр по активному столбцу
 
Доброго времени суток, Планетяне!

Ранее создал тему, о форме с поиском и, в качестве примера рассматривал фильтр по активному столбцу. Пришло время вынести этот пример в отдельную тему.

Хотя данная тема и использует форму с поиском из другой моей темы но могут быть отличия в названиях (макросов, модулей, форм и глобальных переменных)
v 1.0
ОСОБЕННОСТИ:
    • вся фильтрация зашита в один модуль + событие книги для вызова по даблклику на любом листе (1 строка)
    • сделано в виде отдельной надстройки (форма с кодом + модуль для формы + модуль для фильтрации)
    • требует, чтобы фильтруемый диапазон содержал шапку и начинался с первой ячейки листа
    • работает с "умными" таблицами и обычными диапазонами
    • учитывает формат данных (ikki помог)
    • работает только с полным (нефильтрованным диапазоном). Если диапазон был отфильтрован, то все фильтры будут сброшены
    • как использовать:
           1. подключить надстройку
           2. создать ссылку на надстройку: в редакторе Tools -> Preference поставить галочку напротив PaRADoX_FilterActiveColumn или перетащить мышкой (если выбрать форму запуска в виде макроса на панели задач (кнопка), то ссылка не нужна)
           3. запустить макрос фильтрации любым удобным методом. Ссылки есть в v 1.1
Код
Option Explicit
'===========================================================================================
Private Sub Workbook_SheetBeforeDoubleClick(ByVal sh As Object, ByVal target As Range, Cancel As Boolean)
Cancel = True: FILE_Range_FilterActiveColumn
End Sub
Модуль для фильтрации

Последняя актуальная версия надстройки/кода теперь в родительской теме
Изменено: Jack Famous - 3 Сен 2019 14:47:31
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Форма с поиском по маске. Как найти и получить одно или несколько значений
 
Доброго времени суток, Планетяне!

==================================================
Изначально эта была тема об альтернативе инструменту "Выпадающий список с автопоиском" из версии PLEX 2019.1 от 10 августа 2019 г., но после было решено обобщить тему до принципа работы формы (передача, поиск и возврат данных).

Спасибо всем, кто помогал и продолжает это делать на нашем любимом форуме!  :idea:
Отдельная благодарность за постоянные улучшения и объяснения Alemox  ;)


Последняя версия: 1.7: «All-In-One» от 04/09/2019
==================================================

Инструменты, работающие на основе такой формы (начаты по ссылкам, но впоследствии объединены тут в ОДНУ надстройку):
Фильтр по активному столбцу
Поиск и вставка значений активного столбца

Ссылки:
Альтернатива выпадающему списку (форма с поиском)_2 [GIG_ant] из Копилки
nerv_DropDownList (описание + открытый код)
Форма с поиском. Как наполнить форму, искать по ней и вставлять данные
Формы. Как заполнять одну и ту же форму (ListBox) разными данными в зависимости от выделения
Пользовательские формы. Создание прокрутки по-горизонтали (ScrollBar Left/Right)
Формы. Как исправить "обрезанное" отображение данных в ListBox
==================================================
Выставляю на общий суд и для активного использования форму для поиска по активному столбцу. Форма очень шустрая.

ОБЩИЙ ПРИНЦИП ДЕЙСТВИЯ
    1. при запуске макроса, берутся все ячейки столбца кроме пустых (длина строки = 0) и ячеек-прочерков (значение ячейки = СИМВОЛ(151))
    2. Формируется одномерный массив (LBound=0) уникальных значений
    3. Массив сортируется и выводится в форму
    4. В строке поиска (маска) из служебных символов работает только "*" (любое количество любых символов). Остальные («arrSym()») будут удалены.
    5. Маска по-умолчанию ищет БЕЗ учёта регистра и по всей строке: маска = "*" & маска & "*"
    6. Наличие ведущей "*" можно регулировать кнопкой "искать по всей строке"
    7. В активную ячейку можно вставить одно или несколько (будут сцеплены через "; ") значений
    8. Выделить несколько значений можно, зажав ЛКМ или через Ctrl. Работает отмена выделения.
    9. Можно ничего не выделить, тогда будет предложено вставить ВСЁ, что отсеяно маской (видно в окне) на текущий момент

ЧТО НУЖНО ДЛЯ РАБОТЫ: скопировать модуль и форму (перетащить мышью в редакторе) из файла-примера у свой

ПРИМЕР ВЫЗОВА: "ФормаПоискаПоАктивномуСтолбцу". В данном файле срабатывает по даблклику (событие листа)
Модуль
Форма
Вдохновлён автором сайта (обновление PLEX), обучен на данном форуме  :D
Изменено: Jack Famous - 29 Ноя 2019 15:20:08
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Регулярные выражения. RegExp. Заменить символы между двумя цифрами
 
Доброго времени суток, Планетяне!
Не думал, что так тупану  :D выручайте

Есть строка, в которой нужно заменить видимые знаки "умножения" (типа буквы "ха" в кириллице и "экс" в латинице) на звёздочку.

То есть шаблон должен быть что-то вроде "(\d)( *)(?=X|x|Х|х)( *)(\d)":
• между 2мя цифрами стоит "ха" или "икс"
• буквы могут быть в обоих регистрах
• могут быть отбиты одним и более пробелами с каждой из сторон или пробелы могцт отсутствовать (совсем или с одной стороны)
Что накалякал
Тестер
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
bedvit. Как использовать решения автора, COM и XLL. Отличие и подключение
 
Доброго времени суток!
Пытаюсь разобраться с решениями от bedvit'а…

UPD: теперь всё находится в одном месте и в одной надстройке. Библиотека подключается как обычная надстройка и регистрируется в реестре сама. Всё, что остаётся сделать — подключить ссылку на библиотеку для раннего связывания или просто использовать позднее (медленнее)
Пример программного раннего связывания (и «развязывания»  :D ) из #6
Изменено: Jack Famous - 9 Авг 2019 14:10:10
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Импорт данных из PDF в Excel, Как массово получить данные из PDF-файлов с текстовым слоем в Excel
 
Доброго времени суток, Планетяне!
Развитие темы, описанной в Приёмах…

Задача: получить данные из нескольких больших PDF-файлов со сметами, не потеряв кодировку и структуру таблиц.
Вопрос: как это сделать максимально быстро/удобно/корректно?

Как сейчас: объединяю все PDF в 1 и далее по заветам НВП  :)
Текущие основные проблемы: в лучшем случае ОООЧЕНЬ долго, в худшем — синий экран смерти или просто зависание с вылетом

UPD: можно зайти со стороны "Импорт данных из PDF в Word", т.к. макрос пакетного копипаста "Word-Excel" уже есть, а сам метод копипаста (на моём примере) ничего не сбивает, но хотелось бы более "технологичный" подход, да и тема тогда будет другая, так что пока так…

UPD2: пока что решил таки делать — если PDF не вылетает при пересохранении в Word, то потом просто делаю копипаст (макросом быстрее и стабильнее) в Excel.
Для некоторых примеров сработает даже прямое пересохранение PDF в Excel.
Изменено: Jack Famous - 26 Июл 2019 16:21:30
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Сжать пробелы. Как эффективно удалить двойные, а также ведущие и хвостовые пробелы, СЖПРОБЕЛЫ или Trim
 
Доброго времени суток, Планетяне!

На 1 млн одинаковых строк (усреднённо в секундах):
Сравнение по времени
Коды
Эксперименты

Вопрос: можно ли ещё как-то ускорить?
Возможный вариант: хороший шаблон для RegExp, который бы сразу разобрался с ведущими и хвостовыми пробелами кроме задвоенных и при этом сделал это быстрее штатной Trim :D
Изменено: Jack Famous - 24 Июл 2019 14:52:44
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Как скопировать несколько листов с "умными" таблицами в другую книгу, «Невозможно скопировать или переместить группу листов содержащих таблицу»
 
Доброго времени суток, Планетяне!
Создал тему, чтобы сохранить у себя в закладках, т.к. решения не нашёл и подсмотрел у автора сайта  :)

Очевидное решение - копировать по одному листу в цикле, НО ошибка всё-равно появляется. Оказывается, достаточно просто снять выделение с группы листов (ActiveSheet.Select) и всё — можно копировать массивом всё и сразу  ;)
Пример кода
спасибо, Николай Владимирович!  :)

Тема с таким же вопросом по PLEX'у
Метод копирования выделенных листов без цикла (Казанский) (не сработает для умных таблиц)
Изменено: Jack Famous - 11 Июл 2019 16:10:02
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Редизайнер. Power Query (PQ). Свернуть столбцы по группам
 
Доброго времени суток, Планетяне!

Туплю чёт, т.к. редко использую…
Подскажите, как в PQ корректно свернуть столбцы, чтобы преобразовать таблицу, как в примере?
В файле присутствует запрос и вывод его на лист.
Изменено: Jack Famous - 2 Июл 2019 12:17:36
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Копирование активной книги/файла
 
Доброго времени суток, Планетяне!

Есть такая функция, которая при попытке передачи oldPath=ActiveWorkbook.FullName выдаёт ошибку 70: Permission Denied. Дэ-юре это вроде как попытка скопировать защищённый файл, но дэ-факто, она просто не даёт скопировать Активную книгу, т.к. её же, но из другого файла копирует без проблем
Код
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' КАК СРЕДСТВАМИ VBA ПЕРЕИМЕНОВАТЬ/ПЕРЕМЕСТИТЬ/СКОПИРОВАТЬ ФАЙЛ
' https://www.excel-vba.ru/chto-umeet-excel/kak-sredstvami-vba-pereimenovatperemestitskopirovat-fajl/
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function PRDX_Files_Copy(oldPath$, newPath$, Optional MsgIfTrue As Boolean, Optional MsgIfFalse As Boolean) As Boolean
FileCopy oldPath, newPath: PRDX_Files_Copy = True
If MsgIfTrue Then MsgBox "Файл успешно скопирован от пути «" & oldPath & "» по пути «" & newPath & "»", vbInformation, "PRDX_Files_Copy": Exit Function
If MsgIfFalse Then MsgBox "Не удалось скопировать файл от пути «" & oldPath & "» по пути «" & newPath & "»", vbCritical, "PRDX_Files_Copy"
End Function
Вопрос: как обойти это без использования ActiveWorkbook.SaveAs?

UPD: с перемещением/переименованием тоже самое, только другие номера/описание ошибок. Может можно как-то "отстраниться" от книги (кроме как создавать новую), скопировать её, и "вернуться"…
Изменено: Jack Famous - 14 Июн 2019 11:15:52
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Доброго времени суток!

Можно ли переносить листы из одной книги в другую, не копируя , а в массиве. Имеется ввиду именно листами, а не значения листа. Может костыли какие есть?
Это код не работает
Это код работает (получение массивов по именованным диапазонам)
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Как задать константу массива
 
Доброго времени суток, Планетяне!

Хочу задать публичной константой массив типа Public Const FFF_arrCol = Array(1,2,3).
Интернет говорит, что подобное сделать нельзя и нужно задавать строку с разделителями или писать функцию, возвращающую всегда один и тот же массив.

Действительно ли массив не может быть константой и как вы делаете в подобных случаях?…
Изменено: Jack Famous - 7 Июн 2019 13:19:58
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Комбинаторика. Раскрой арматуры, Как оптимально разрезать хлысты арматуры заданного размера на заданное количество кусков заданной длины
 
Доброго времени суток, Планетяне!

Чёт туплю и никак не могу составить схему для "поиска решения"…
1. Есть 4 типа арматуры (по диаметру)
2. Каждый тип имеет один или несколько вариантов длин отрезков с заданным количеством штук
3. Для каждого типа арматуры одинаковая длина разрезаемого хлыста - 11,7 пм. Хлыстов может быть сколько угодно
4. Каждый хлыст должен быть разрезан максимально эффективно, при этом нужно получить всё заданное количество кусков заданного размера

Придумал, как посмотреть раскрой 1 хлыста по всем заданным размерам (лист "модель для восьмёрки"), но при таком раскрое один из типов "выберется" полностью раньше остальных (перекос)…
Помогите кто чем может)))

P.S.: нашёл свою старую тему (почти один-в-один)
Изменено: Jack Famous - 7 Июн 2019 08:47:04
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Рекурсия на метках, Как повторить смысл/функционал рекурсивной процедуры/функции метками
 
Доброго времени суток, Планетяне!

Есть подозрение, что метки могут заменить рекурсию, ускорив процесс, но не хватает "шестерёнок" в голове — прошу подсобить, создав функцию FILE_Array1xSortInd2 на метках (потуги прикрепил) по образу и подобию рекурсивной  FILE_Array1xSortInd

Сортер взял отсюда, тестирую на 601 100 строк вот этих данных.
КОДЫ
Изменено: Jack Famous - 28 Май 2019 15:01:21
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Диапазоны. Диалоговые окна (диалоги). Проблемы выделения диапазона, состоящего из многих областей, Как с помощью Application.InputBox выделить диапазон, адрес которого превышает 255 символов
 
Доброго времени суток, Планетяне!

Неожиданно столкнулся с проблемой, когда через Application.InputBox(Type:=8) не получается передать диапазон, адрес которого превышает 255 символов (несколько отдельных ячеек). Есть решение?

К слову, если попытаться создать именованный диапазон из такого адреса — также не получиться. Выделив сразу 500 видимых отфильтрованных ячеек (в примере), диапазон подхватит только первые 43, длиной адреса как раз на 253 символа. Причём, ручками добавлять новые ячейки получится и итоговый адрес будет больше (Len([_filter].Address)=256).
Судя по такой "фиче" диапазон придётся Union'ом собирать…
Тестовый код
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Умные таблицы. Как быстро определить, есть ли в ней данные, Как быстро определить, пустая ли умная таблица
 
Доброго времени суток, Планетяне!

Если в пустой умной таблице (УТ) удалить все строки любого поля, то в ней всё равно останется 1 строка под шапкой.
Если в УТ есть поля с формулами, то при удалении всех строк (одна останется), формулы тоже ОТОБРАЖАТЬСЯ не будут, но, стоит начать её (УТ) заполнять, то всё вернётся.
Если в УТ более 1 строки, то она заполнена (не пустая) и далее я проверяю поля на корректность заполнения.
Если в УТ 1 строка, то она или пустая или заполненная.

Как наиболее быстро определить, пустая ли УТ или заполнена 1 строка?
Разумеется можно через =СЧИТАТЬПУСТОТЫ() и иже с ними, но может есть у неё (УТ) какой-нибудь параметр или подскажете трюк/костыль…

Решение больше нужно для VBA, но устроит любая подсказка
Изменено: Jack Famous - 18 Апр 2019 12:03:02
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Перечень (список) всех "Приёмов" из сайта PlanetaExcel.ru со ссылками в одной таблице
 
Доброго времени суток, Планетяне!
Понадобилось для сотрудников компании сделать перечень всех приёмов для удобного поиска и навигации…
Спарсил. Делюсь  :)

P.S.: столбцы "D" и "E" скрыты
Изменено: Jack Famous - 10 Апр 2019 15:44:56
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Как правильно формировать строку в цикле, (+ Обсуждение замены Join)
 
Доброго времени суток, Планетяне!

Anchoret тут упомянул тему из архива, в которой приводятся тесты, показывающие превосходство "правильной" сцепки.

Предлагаю перенести эту тему в Курилку.
Тестовый стенд с изменённой версией из #16 архивной темы (там дальше более крутые версии)

P.S.: я до конца принцип не понимаю, поэтому продолжаю использовать Join  :D

P.P.S.: если вместо единичек заполнять массив буквами, то Join проигрывает ещё сильнее, а на 100 млн (у меня даже больше 1 млн не бывает на практике) вылетает в синий экран из-за Out Of Memory
Изменено: Jack Famous - 11 Мар 2019 18:39:04
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Умные таблицы. Вставить строки, (по ОДНОЙ строке перед/над каждой ячейкой в заданном диапазоне)
 
Доброго времени суток, Планетяне!

Удаление строк рассмотрено тут, а со вставкой всё сложнее. Если вставлять нужно более чем по 1 строке, то тут без циклов никак и этот вариант отлично работает.

Вопрос в работе функции PRDX_RowsInsert: если выделить (передать диапазон) ячейки, которые не стоят рядом, то всё гут, но, если выделить рядом стоящие ячейки (неважно, по одной через Ctrl или одним выделением), то вставляется так, как, если было бы выделено сплошным диапазоном (над первой ячейкой выделения вставляется столько строк, сколько выделено). Если делать руками (выделить по одной и нажать "Вставить строки на лист"), то всё гут, но макрорекордер записывает Selection.EntireRow.Insert если мы тоже самое запишем в коде, то для умной таблицы не сработает (будет ошибка).
КОДЫ
Изменено: Jack Famous - 6 Мар 2019 10:58:41
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Падение производительности Excel. Перезапуск решает проблему.
 
Доброго времени суток, Планетяне!

Работаю в excel: присутствуют функции листа, UDF, макрос на элемент управления "флажок", макрос вызова формы с поиском по даблклику и макрос на открытие книги, включающий ручной пересчёт формул. Также много УФ на штатных функциях.
Проблема: спустя час-два работы, вставка/удаление строк в "умной" таблице (неважно - макросом или руками) начинает жутко тупить (3-7 сек.). Закрываю файл, открываю его заново и всё летает (опять первые час-два).
Вопрос: почему так и как побороть без перезапуска файла

P.S.: думал, что это история "откатов", но ведь запуск макроса обнуляет счётчик…
Win7
Макросы из книги (файла) для списания спецификации по ведомости:
Изменено: Jack Famous - 31 Янв 2019 10:35:51
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Страницы: 1 2 3 4 5 След.
Наверх