Апострофф, спасибо.
VBA странность при работе с переменными
VBA странность при работе с переменными
VBA. Вытягивание данных с закрытых книг их автоматическая группировка
|
27.04.2016 13:08:26
Hugo, круто!
Ваш код пока слишком сложен для моего уровня знаний, буду изучать, и может быть, годиков эдак через семь смогу сделать что-то наподобие) Спасибо! |
|
|
|
|
VBA. Вытягивание данных с закрытых книг их автоматическая группировка
|
27.04.2016 10:56:38
Hugo, после прочтения Вашего сообщения в моей душе поселилась печаль, ибо что нужно сделать - примерно понимаю, а вот как перенести это дело в код - нет.
Не встречалась ли Вам подобная задача с реализацией через эти самые словари/коллекции? Именно подобная, потому что, как показала практика в лице совета ув. Sanja из примеры задач с использованием коллекций особой ясности не вносят. Тем временем, переспав со своей проблемой, на утро на ум пришел простой вариант ее решения - через введение переменной LastRow и конструкции Select Case. Если у кого возникнет похожая проблема и кто также не разбирается в коллекциях, то я сделал так: Первый Case - в случае если Application.Match названия новой книги по отношению к уже загруженному диапазону названий = 0 (т.е. название книги встречается впервые), то смещение по строкам относительно первой ячейки происходит не на величину счетчика количества открываемых файлов, как раньше, а на LastRow (последняя заполненная строка диапазона имен открываемых книг). Дополнительное условие в этом Case - если счетчик открываемых книг = 1 (т.е. открыта самая первая книга), то смещение происходит как раньше - на этот счетчик открытий. Второй Case - Application.Match >0 (т.е. название уже встречалось), в котором смещение происходит на LastRow - 1 В принципе, свою задачу я решил и номинально тема закрыта, но мне интересна ее реализация через словари/коллекции. Так что если кто захочет реализовать идею ув. Hugo, буду благодарен. Для этого прикрепляю доделанные файлы-примеры, в которых на этот раз происходит некая выгрузка данных. |
|
|
|
|
VBA. Вытягивание данных с закрытых книг их автоматическая группировка
|
26.04.2016 20:07:26
Hugo, спасибо, теория стала чуть понятнее, кроме момента
А по поводу Вашего замечания по поводу постановки вопроса -
Структура рабочих книг такова, что в каждом из них - данные по 2 годам, (например, А_2001 содержит данные за 2000-2001гг). Целевой же файл содержит таблицу с диапазоном 2000-2014 гг, и в случае, если в конкретной открываемой книге нет данных нужного периода, данные ячейки просто не изменяются. Сейчас выгрузка происходит "лесенкой", см. пример При объединении в одну строку данные будут выгружаться корректно (при условии, что необходимую величину смещения получится загнать в переменную) |
|||||
|
|
|
VBA. Вытягивание данных с закрытых книг их автоматическая группировка
|
26.04.2016 19:44:02
Hugo, претензия принимается) Уточняю - не доводилось сталкиваться при личном написании кода - чужое-то использовать много ума не требует
Изменено: - 26.04.2016 19:59:40
|
|
|
|
|
VBA. Вытягивание данных с закрытых книг их автоматическая группировка
|
26.04.2016 19:08:00
Sanja, я изучил Ваш пример, уже час с ним мучаюсь, пытаясь приладить под свои нужды, но особого понимания не добавилось - в Вашем примере было два сформированных массива, а в моем случае - ни одного (либо один, если за него принять еще пустой массив с выгруженными названиями). А как сделать сверку с названием новой выгружаемой книги с этой коллекцией, как вернуть номер совпадения этого названия (через application.match, же?), и самый главный вопрос, как в итоге прийти к уменьшению смещения в целевой книге с количества открываемых книг на количество их уникальных наименований?
Я не могу понять, какой должен быть алгоритм, снова смиренно прошу помощи.
Изменено: - 26.04.2016 19:31:09
|
|
|
|
|
VBA. Вытягивание данных с закрытых книг их автоматическая группировка
|
26.04.2016 17:41:03
Hugo, к сожалению, мне еще не доводилось сталкиваться ни со словарями, ни с коллекциями на практике, но буду копать в этом направлении, спасибо за наводку!
А пока я сделал упрощенный пример-шаблон, выгружающий имена книг, буду благодарен, если кто-нибудь подскажет как советы, ув. Hugo реализуются на практике. Прилеплены: файл "пример" и три пустых загружаемых файла.
Изменено: - 26.04.2016 17:46:29
|
|
|
|
|
VBA. Вытягивание данных с закрытых книг их автоматическая группировка
Спецвставка с умножением на константу или переменную, макрос
Спецвставка с умножением на константу или переменную, макрос
|
25.04.2016 14:17:46
kuklp, вот так и знал, что не надо activesheet в примере давать)
Изменено: - 25.04.2016 14:19:01
|
|||
|
|
|
Спецвставка с умножением на константу или переменную, макрос
|
25.04.2016 13:10:36
Можно ли и если да, то каким образом применить данную конструкцию при полном обращении к диапазону? К примеру, такой код у меня выдает ошибку:
|
|||||||
|
|
|
Метод Application.Match со ссылкой на другую книгу, ошибка в коде
Метод Application.Match со ссылкой на другую книгу, ошибка в коде
Метод Application.Match со ссылкой на другую книгу, ошибка в коде
Отзывы о работодателях и исполнителях, Посмотрите, прежде чем взять/предложить работу
Помощь в доработке макроса
Автозамена в формулах незащищенных ячеек
|
31.03.2016 19:08:50
bedvit, спасибо за ответ!
Действительно, замена макросом работает отлично. Но дело в том, что я делаю инструмент для своих коллег, которые не очень дружны с экселем, и подавно - с вба, так что использование кода для индивидуального использования каждого пользователя отпадает. Я надеялся обнаружить решение, подобное решению для работы структурированных строк/столбцов в защищенных листах - код, прописываемый в модуль книги, и нормализующий его работу. Однако даже на англоязычных ресурсах пока не натыкался ни на что похожее. Пока вопрос остается открытым. |
|
|
|
|
Выполнение части макроса при изменении соответствующих ячеек
Автозамена в формулах незащищенных ячеек
Выполнение части макроса при изменении соответствующих ячеек
|
31.03.2016 17:08:10
Sanja, большое спасибо за ответ!
Однако у меня не получилось. Этот код работает на лету, однако по прежнему изменяет все столбцы при изменении одной ячейки
|
|||
|
|
|
Выполнение части макроса при изменении соответствующих ячеек
Автозамена в формулах незащищенных ячеек
Автозамена в формулах незащищенных ячеек
Изменение макроса при помощи другого макроса
|
26.02.2016 19:43:49
The_Prist,спасибо!
|
|
|
|
|
Изменение макроса при помощи другого макроса
|
26.02.2016 18:49:42
Александр Сергеевич, отличный вариант! Но вопрос был именно в возможности изменения макросом макроса
The_Prist, в краску вгоняете |
|
|
|
|
Изменение макроса при помощи другого макроса
VBA: application.vlookup - error 91, Есть 2 макроса, в одном нет ошибки, в другом - есть
VBA: application.vlookup - error 91, Есть 2 макроса, в одном нет ошибки, в другом - есть
|
16.02.2016 14:31:17
Sanja, когда прочитал Ваш ответ засмеялся сквозь слезы) Два часа сидел ошибку выискивал. Спасибо огромное!
Hugo, замечание по option explicit учту, спасибо. Кстати, не сочтите за оффтоп (т.к. в продолжение option explicit). Вы не подскажите, нет ли где эдакого "перечня хорошего тона при написании макросов vba"? Я вот, например, слышал, что не приветствуется использование конструкций GoTo и ActiveBook/Cell, теперь вот OptionExplicit добавилась в копилку знаний, но таких тонкостей же гораздо больше. |
|
|
|
|
VBA: application.vlookup - error 91, Есть 2 макроса, в одном нет ошибки, в другом - есть