Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 21 След.
Перенос данных из одного столбца в строки при изменении данных, Разбивка данных из одного столбца на строки с учетом изменения данных в столбце
 
Ещё вариант макросом (добавил комментарии в код):
Скрытый текст
Заполнение таблицы с помощью связанных ComboBox
 
Например так:
Скрытый текст
Изменено: artemkau88 - 02.04.2024 17:23:50
Регулярные выражения (RegExp) в Excel
 
Какие ошибки выскакивают? В каких ячейках? Можете приложить скрин с ошибками и файл с макросом?
С моим вариантом тоже ошибки выскакивают?
Регулярные выражения (RegExp) в Excel
 
Mik1965, посмотрел файл. У Вас ошибка в тех ячейках, где не найдено совпадение. То есть все в порядке.
Набросал свой вариант (во вложении). Паттерн в ячейках C2 и E2 соответственно.
Если будете использовать вариант Николая, то, чтобы не было ошибки, можете заменить строку:
Код
RegExpExtract = CVErr(xlErrValue)
на
Код
RegExpExtract = ""
P.S: с этой функцией формулу ЕСЛИОШИБКА можно не использовать

или можно еще использовать другие паттерны (тогда в моей функции trim не нужен):
Код
(?<=^| )[ОO]{3}(?= ) ' для ООО
(?<=^| )ИП(?= ) ' для ИП
Код
'код:
Public Function RegExpExtract(Text As String, Pattern As String) As String
RegExpExtract = ""
    With CreateObject("VBScript.Regexp")
        .Ignorecase = False: .Global = False: .MultiLine = False: .Pattern = Pattern
        If .test(Text) Then RegExpExtract = .Execute(Text)(0)
    End With
End Function
Изменено: artemkau88 - 29.03.2024 11:33:13
Регулярные выражения (RegExp) в Excel
 
Mik1965, добрый день!
В функции RegexExtract паттерн лучше заменить на (если ищем в начале строки):
Код
^ *[OО]{3}\b ' искать в начале строки за которым следует 0 или больше пробельных символов. О русская и английская (вдруг опечатка) за которым следует граница слова
и
Код
^ *ИП\b ' искать в начале строки за которым следует 0 или больше пробельных символов. ИП в начале строки за котрым следует граница слова
указывать [ООО] не имеет смысла, так как это указание диапазона символов, то есть [ООО] == О{3}. По ИП тоже самое, а то получается, что ищем любую букву из диапазона [ИП] и она совпадет и с выражением ИИ и ПП тоже. Лучше использовать ИП просто как строковый литерал (буква И, за котрой сразу следует буква П). После ИП и ООО также, на мой взгляд лучше добавить символ границы слова, так как в противном случае паттерн ^ИП совпадет в начале строки и с выражением, например: ИПартюхов

По основному вопросу: может после открытия файла Вы не включили макросы? Так как RegexExtract  это пользовательская функция.
Изменено: artemkau88 - 28.03.2024 12:07:05
Объединение столбцов в один
 
Раз уж написал, то тоже выложу тут:
Скрытый текст
Объединение столбцов в один
 
Diana@1, здравствуйте!
Без файла-примера сложно сказать.
Приложите файл-пример с исходными данными и примером результата.
Спасибо!
Изменено: artemkau88 - 02.03.2024 10:48:07
Вложенные циклы долго работают, Оптимизация
 
БМВ, большое Вам спасибо!  Сегодня попробую.
Попробовал на 99000 строк. Выскочила ошибка (см. вложение).
При изменении диапазона до меньшего размера (например до 60000, либо явного указания всего столбца, типа Лист1$"A:K"), ошибка не выскакивает.
Excel 2007 версии
Спасибо большое за ответ! :)
Изменено: artemkau88 - 01.03.2024 17:33:14
Вложенные циклы долго работают, Оптимизация
 
БМВ, спасибо! Правильно ли я понял, что это ограничение для диапазона для запроса SQL? Спасибо!
Изменено: artemkau88 - 01.03.2024 13:51:43
Вложенные циклы долго работают, Оптимизация
 
БМВ, да, спасибо! Я не заметил, что у автора темы тот же код (конец дня видно сказался)
Изменил алгоритм на SQL запрос в сообщении выше
Изменено: artemkau88 - 29.02.2024 20:47:29
Вложенные циклы долго работают, Оптимизация
 
вариант SQL запросом:
Скрытый текст
Изменено: artemkau88 - 01.03.2024 21:11:42
Перенос файла для macOS
 
Евгений Смирнов, возможно, но думаю, что нужно дождаться реакции автора темы на сообщение от Модератора. А то все по "шапке" получим. :)  
Перенос файла для macOS
 
Sanja, прошу прощения, что ответил не в той ветке.
Мамкин Сынок, я имел в виду не файл с макросом, а снимок экрана - снимок ошибки со строкой кода (которая подсвечивается желтым и саму ошибку - всплывающее окно)
Перенос файла для macOS
 
Мамкин Сынок, я не специалист по МАС, но все же.
Если нажать кнопку "debug" во всплывающем окне ошибки, то какую строку кода подсвечивает в редакторе кода. Можете выложить скрин? И что за ошибка возникает - её имя (тоже можете выложить скрин?)
Перенос файла для macOS
 
Евгений Смирнов, возможно. Не особо вдавался в логику. Спасибо! :)  
Перенос файла для macOS
 
Раз уж подправил, тоже выложу код.
Если угадал логику верно, то см. файл
Перенос файла для macOS
 
Мамкин Сынок, у Вас в коде используется объект "Словарь" - "Scripting.Dictionary". Нужно его заменить на объект коллекции и внести соответствующие правки в код
Перенос файла для macOS
 
Мамкин Сынок, приветствую!
Замените словари на коллекции. Думаю, этого будет достаточно.
Макрос разложить строки по столбцам, Нужно строки раскидать по строкам
 
Третий вариант. Вынес выгрузку на лист за цикл и добавил форматирование таблицы с результатом.
Макрос разложить строки по столбцам, Нужно строки раскидать по строкам
 
Chingiz Xan, сегодня добавил подробные комментарии в код (см. моё сообщение выше #5) и обновил файл.
Изменено: artemkau88 - 28.02.2024 10:30:56
Как убрать из ячейки лишние электронные адреса
 
Без файла-примера сказать сложно. Вариант пользовательской функцией на регулярках.
В обычный модуль книги вставьте функцию ниже. Использование, если данные в столбце А, то в столбец В1 вставить и протянуть:
Код
 =regexExtract(A1)
Код
Function regexExtract(s As Range) As String
regexExtract = "None"
With CreateObject("VBScript.Regexp")
    .Global = False: .MultiLine = False: .pattern = "^[-a-z0-9_.]+\@[-a-z0-9_]+\.[a-z]+": .IgnoreCase = True
    If .test(s) Then regexExtract = .Execute(s)(0): Exit Function
End With
End Function
Изменено: artemkau88 - 25.02.2024 17:07:26
Макрос разложить строки по столбцам, Нужно строки раскидать по строкам
 
Убрал лишние массивы и переменные
Код:
Скрытый текст
Изменено: artemkau88 - 28.02.2024 10:29:53
Макрос разложить строки по столбцам, Нужно строки раскидать по строкам
 
Chingiz Xan, добрый день!
Вариант на листе с именем tmp (потом измените на нужное)
Скрытый текст
В коде добавил комментарии для изменения имен листов с исходными данными и результатом
Изменено: artemkau88 - 25.02.2024 12:51:20 (Забыл точку во вспомогательном макросе. Обновил файл)
Список из ячеек, Формирования большого списка из списков в ячейках
 
Еще 2 варианта (с регулярками и без):
Скрытый текст
Скрытый текст
Изменено: artemkau88 - 24.02.2024 13:35:08
Макрос для сравнения нескольких ячеек.
 
Добрый день!

Вариант:

Скрытый текст
Изменено: artemkau88 - 24.02.2024 12:49:50
Объедить столбцы дат в месяц
 
lorents, добрый день!
Вариант SQL запросом (добавил комментарии в коде):
Скрытый текст
Изменено: artemkau88 - 17.02.2024 18:07:38
Разнести данные из сводной ведомости по датам, в отдельные листы
 
Не понял Вас
Повторю вопрос:  лист с именем "ведом." для чего?
Разнести данные из сводной ведомости по датам, в отдельные листы
 
Arsenyu, добрый день!
А лист с именем "ведом."  для чего?
Спасибо!
данные из подзаголовков в таблице перенести в отдельную колонку, аптекарская программа формирует отчет с группировкой колонок по аптекам, а нужно номера аптек перенести в отдельную колонку
 
Ещё вариант (с сортировкой до выгрузки на лист и проверкой, существует ли лист с результатом):
Скрытый текст
данные из подзаголовков в таблице перенести в отдельную колонку, аптекарская программа формирует отчет с группировкой колонок по аптекам, а нужно номера аптек перенести в отдельную колонку
 
вариант макросом:
Скрытый текст
Имя tmp можете поменять на нужное имя листа (он должен быть создан до запуска макроса). В коде именя листов выделил коментарием

При каждом запуске, макрос очищает ячейки на листе tmp и заполняет таблицу с результатом
Изменено: artemkau88 - 21.01.2024 13:00:19 (исправил код)
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 21 След.
Наверх