![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 05.04.2011
Сообщений: 6
|
![]()
Всем привет. У меня есть сложная задачка. Очень надеюсь на то, что найду на этом форуме совет.
Итак, у меня есть база данных в Excel по транспорту на предприятии (смотри приложенный файл). Давайте рассмотрим, что тут представлено. В ячейке объединенных ячейках C158+D158+E158 наименование техники, F158 - гос номер, G158 - общие часы работы, H158 - общий пробег, I158 - сумма затрат, D159+E159 - путевой лист NNNN (дата) {номер путевого листа может быть как четырехзначным, так и пятизначным}, G159 - часы работы по дате, указанной в путевке, H159 - километраж, I159 - затраты, E161 - цена за час. Далее в ячейке C162 идет следущий автомобиль. Количество путевых листов по каждому автомобилю может варьироваться от 1 до 31, следовательно не в каждой четвертой ячейке C (C166, C170, C174,...) будет следущая марка техники. Что же требуется вычленить из всего этого отчета на 5000+ строк? Необходимо попытаться получить форму, представленную на рисунке ниже. Примерный алгоритм действий следущий: - На новом листе заполнить верхнюю строку значениями 01, 02, 03, ... - датами текущего месяца - Поиск непустых ячеек в столбце C - C(n) - При нахождении непустой ячейки нужно убрать объединение ячеек и скопировать в новый лист значения в ячейке С - C(n) и значение из ячейки F - F(n) после двух пробелов {номер автомобиля} - В ячейке D(n+1) поиск "(", сохранение двух следущих цифр в переменную - дату. - Нахождение на новом листе в верхней строке даты равной дате, вычленной в ячейке D(n+1) - Вставка данных из текущего листа в новый лист: в стоблец с найденной датой время из ячейки G(n+1). - Вставка в конец таблицы на новом листе цену за час из ячейки E(n+3) Наверно я чтото упустил, однако я готов ответить на любые вопросы. Также буду рад ознакомиться с ссылками, где можно посмотреть наглядное использование VBA функций, которые были бы полезны в решении моей задачи. Спасибо! Последний раз редактировалось freakymeow; 05.04.2011 в 13:25. |
![]() |
![]() |
![]() |
#2 |
Регистрация: 05.04.2011
Сообщений: 6
|
![]()
Прикладываю рисунок, где видно, что должно примерно получиться
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Ответ картинкой давать?
Ил приложите какой то кусок файла
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 05.04.2011
Сообщений: 6
|
![]()
Прикладываю файл, спасибо.
Последний раз редактировалось freakymeow; 05.04.2011 в 14:33. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Выбираете файл в диалоге.обрабатывается первый лист
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 05.04.2011
Сообщений: 6
|
![]()
Спасибо большое! Сейчас буду разбираться.
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 05.04.2011
Сообщений: 6
|
![]()
В ходе работы у меня возник небольшой вопрос. Допустим код начинается с нуля (08050000), в массиве при записи в *.csv файл (смотрел по Add watch) он сохраняется с нулем вначале, однако при открытии *.csv файла нуля уже нет, но если открыть в блокноте, то там отображается нормально. Собственно вопрос - как определенному столбцу присвоить текстовый формат (как при записи в *.csv файл указать что это именно текст) или как открыть текстовый файл (*.txt) и все данные из него перенести в какой-нибудь массив?
Конечно можно при переносе в *.csv поставить какой-нибудь печатный символ перед кодом или же при загружении данных из *.csv сложить строчку с кодом с '0', но вдруг есть какое-нибудь более элегантное решение. Спасибо. Прикладываю файл с модифицированным макросом, csv таблицей и исходными данными. upd: остановился на Код:
Последний раз редактировалось freakymeow; 06.04.2011 в 00:45. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Я тогда не пойму,зачем писать вам в файл.пишите на лист
upd="'" & 4556
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 05.04.2011
Сообщений: 6
|
![]()
Да, так я и сделаю. Так сложилось что сегодня был первый день знакомства с VBA и естественно первые решения могут показаться громозкими и нелогичными.
![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Формирование документа Word на основе данных Excel | gaevoy1 | Microsoft Office Excel | 10 | 11.04.2011 12:05 |
Автоматическое создание структуры документа | cmygla | Microsoft Office Word | 1 | 08.12.2010 19:13 |
Формирование и вывод новой матрицы | DarkSwan | Visual C++ | 10 | 05.11.2010 17:03 |
формирование новой таблицы на основе исходной | azov | Microsoft Office Excel | 2 | 18.07.2009 22:38 |
Формирование Excel-документа через OLE-сервер с Unicode-символами | sergushkin | Microsoft Office Excel | 2 | 13.04.2008 23:04 |