Страницы: 1
RSS
Копирование данных в таблицы произвольного размера
 
Антиспам скрыл сообщение. Из-за ссылки:
Цитата
slater написал: Примеры таблиц  выложил на Яндекс.Диск, т.к. в лимит 300Кб никак не укладываются, ссылка  на примеры:
Это не примеры. Пример - подготовленный НЕБОЛЬШОЙ файл с демонстрацией проблемы и желаемым резльтатом.
Решение нужно Вам и Вы длжны тратить свое время на подготовку, а не помогающие на беготню по ссылкам и копание в ненужных для решения вопроса  данных

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

    Application.ScreenUpdating = False
    Windows("01 Взвешенные вещества.xlsm").Activate
    Range("E@:E#").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("сводный 10.01.20-11.01.20.xlsm").Activate
    Range("D3").Select
    ActiveSheet.Paste Link:=True

Здесь символы @ и # изменяемые значения,т.е. их можно подставлять с помощью вызова окна "Найти и заменить" на нужные числа. Но можно ли здесь применить функцию InputBox, чтобы при запуске макроса она запрашивала ввод значения верхней границы диапазона @ и нижней #?  
Страницы: 1
Наверх