slater написал: Примеры таблиц выложил на Яндекс.Диск, т.к. в лимит 300Кб никак не укладываются, ссылка на примеры:
Это не примеры. Пример - подготовленный НЕБОЛЬШОЙ файл с демонстрацией проблемы и желаемым резльтатом. Решение нужно Вам и Вы длжны тратить свое время на подготовку, а не помогающие на беготню по ссылкам и копание в ненужных для решения вопроса данных
И вопрос в теме должен быть один, конкретный. Продублируйте сообщение, прикрепите пример. Или будет, как и с прошлой темой - получили замечание и ушли?
Да я бы и рад маленький файл приложить, но как я в данном случае объясню пользователям без полного набора таблиц что именно мне нужно сделать? В такой мизерный размер это невозможно вместить, а по каким-то обрезкам таблиц ничего не понятно будет.
Один вопрос просто объясняется на небольшом примере. Если у Вас ТЗ, то такое решается в разделе платных заказов. Здесь - п.2.6 правил форума ("один вопрос - одна тема" ). Ознакомьтесь, полезно.
Наши химики составляют таблицы по загрязнению воздуха, каждый день фиксируют данные по разным загрязнителям (таблицы взвешенные вещества, фенол, гидрохлорид и т.д.), заполняют эти таблицы по мере поступления данных со станций в разных населённых пунктах, замеры по каждому веществу производятся четыре раза за сутки и заносятся сперва по каждому веществу отдельно, когда накопится хотя бы за неделю-декаду, то формируют из них экспресс-бюллетень (бюллетень №1, бюллетень №2 и т.д.) также произвольного размера (берут куски данных из журналов веществ). В конце каждого месяца составляется сводный бюллетень по всем веществам за прошедший месяц. Нужно чтобы макросы переносили данные из таблиц веществ в экспресс-бюллетени и в сводный. Поскольку заполненные таблицы загрязнителей и сводные имеют одинаковые размеры (за месяц), я пока что записал макрорекордором простые макросы, копирующие колонки данных полностью. Но таблицы экспресс-бюллетеней всегда разного размера и количества, и там в начале или конце могут быть добавлены данные уже и за следующий месяц, зависит от того когда химики именно их сняли и внесли в таблицу веществ. Возможно ли тут как-то реализовать, чтобы макрос бюллетеня №1 копировал 1-ю порцию данных из таблицы примесей, бюллетеня №2 вновь добавленный кусочек и т.д., либо же здесь возможно только вручную вводить диапазон копируемых данных? Я VBA не знаю, прошу помочь с кодом, либо хотя бы какие-нибудь примеры кинуть как это делается. Таблицы как есть прикладываю.
эти таблицы по факту отдельные книги эксель? в файле сводный бюллетень за февраль 2020 г. Димитровград - это то что должно получиться из 3х файлов? посмотрел файл- вроде можно сделать макросом, но НЕ все мне понятно, что откуда и куда, что за чем...лучше бы вместо огромного текста выше показали(рассказали) берем этот файл смотри то-то, копируем это если так и если иначе не копируем, вставляем туда-то, затем открывает 2 файл .....
slater, если бы в качестве источников не было бы файлов в формате xlsb, то я бы рекомендовал вам Power Query в качестве иснтрумента сбора данных. Но если доступен только такой формат. то увы, только ВБА.
Mershik, отдельные в случае с бюллетенями, только в файлах примесей объединены вкладки по всем месяцам. т.е. они сперва заносят какую-то заранее точно не известную (ну только примерно за неделю или около того, а где-то может и за день-три) сводку данных в таблицы примесей снятых с приборов (зависит от того как часто они ездят в конкретный пункт сбора данных), затем копируют эти данные в бланк экспресс-бюллетеня. В экспресс-бюллетенях данные вставляются непрерывно по времени, "колесом", т.е. допустим, один бюллетень содержит данные за 5-е - 25-е февраля (четыре замера по времени - 01, 07, 13 и 19 часов), значит следующий за ним будет начинаться либо с 25-го февраля (в случае если не успели ещё все 4 замера сделать на момент компоновки предыдущего бюллетеня, тогда оставшиеся замеры переносятся в следующий бюллетень (25-е число и количество строк соответственно), либо, если все 4 замера попали в предыдущий, то следующий конечно будет начинаться с 26-го числа (если не было выходных или праздников, тогда сразу после них - 27-го, 28-го и т.д. А в сводный данные компонуются уже строго только за месяц (как и в таблицы примесей). Т.е. соответственно и количество этих экспресс-бюллетеней заранее неизвестно, ясно только что полный их цикл покрывает весь год, если бюллетень №1 начат 1-го января, соответственно последний бюллетень в этом году будет иметь дату где-то 29-го, 30-го декабря, т.к. во время новогодних праздников никто у нас не работает. Другой какой-то системы здесь нет, поэтому не знаю за что будет цепляться макрос в данном случае, за какую логику, чтобы переносить только нужные строки из таблиц примесей в экспресс-бюллетени, он тогда должен каким-то макаром анализировать когда или где была внесена в примеси 1-я порция данных, когда последующая, и копировать только эти строки. Если это невозможно или очень сложно, тогда может получится как-то вручную задавать в макросе экспресса требуемый диапазон копирования, но я не умею их создавать к сожалению.
от этого не легче, ибо оба два - бинарные форматы. Они могут считываться Power Query не очень корректно. В идеале исходники должны быть в формате xlsx, а еще лучше в текстовом.
Юрий М, так у меня и короткие не отправлялись, выдаёт либо "похоже на спам", либо "отправлено", но реально не добавляется, либо "слишком часто отправляются сообщения", хотя я всего одно пытался отправить, прямо видимо тут ограничений понаставили настолько параноидальных, что ни пёрнуть, ни вздохнуть ))
PooHkrd, эти таблицы у них сейчас в старом формате xls хранятся, видимо создавались ещё очень давно в Excel 2003 скорее всего (лист Microsoft Excel 97-2003), я макросы записывал в Excel 2019, пересохранив их конечно предварительно в xlsm формата 2019. Поэтому препятствий в использовании Power Query быть вроде не должно, вопрос только поможет ли он мне в выполнении этой задачи? На приложенных таблицах можно объяснить, допустим, нужно скопировать значения из графы "концентрация" таблицы гидрохлорид из вкладки "февраль" (К4:К33) в графу (К23:K52) таблицы бюллетень г. Димитровград №1 2020г., как видно на уже заполненных таблицах, но заранее этот диапазон неизвестен, можно показать фрагмент кода макроса, который бы в данном случае запрашивал ввод диапазона данных (точнее Kx и Ку, где х и у переменные), который нужно скопировать из таблицы гидрохлорида?
Извиняюсь, если вам почему-то непонятно что я хочу сделать, хотя вроде бы всё подробно объяснил. Но я вроде бы догадался как можно это сделать, вот фрагмент моего макроса:
Здесь символы @ и # изменяемые значения,т.е. их можно подставлять с помощью вызова окна "Найти и заменить" на нужные числа. Но можно ли здесь применить функцию InputBox, чтобы при запуске макроса она запрашивала ввод значения верхней границы диапазона @ и нижней #?