Слово и фраза: Искать: Сортировать по:
Форумы на Sostav.ru / Общие вопросы / Макрос для работы с заявками
боремся с рутинной работой

Profile
F3©

Постов: 4827
Дата регистрации: 25.08.2004
Коллеги, может кто-то уже сталкивался с данной проблемой и уже ее решил.
С сайта валятся заявки в текстовом формате. В виде - "название поля": "значение".
Каждое поля с новой строки. Но не заполненные поля в письмо не включаются. Где-то есть мыло, где-то нет и тп То есть порядок полей в разных заявках не совпадают. То есть телефон может быть в 5 строке, а может быть в 4-ой.


Тариф ? ? ? ? ?

Город: ? ? ? ? ?
Адрес: ? ? ? ? ?
Фамилия, Имя, Отчество: ? ? ? ? ?
Контактный телефон: ? ? ? ? ?



Нужно эту информацию сгружать в табличку в Excel. Желательно не руками. Может кто уже сталкивался с такой задачей?
--------
Следует отличать неразвитые мысли от тщательно развитых не-мыслей.

Да 0 Нет 0
Пользователь в OffLine Послать приватное сообщение Добавить пользователя в список друзей 18.02.2010 09:02
цитата
Profile
pelvis©
CMS Maker
Постов: 2504
Дата регистрации: 24.11.2005
для: F3© сделайте поля обязательными к заполнению, это всего лишь галочка в админке.
--------
Schnabl изделия для СКС. Выстраиваем продажи.
Производство светодиодных светильников для вашего офиса. Берегите зрение!

Да 0 Нет 0
Пользователь в OffLine Послать приватное сообщение Добавить пользователя в список друзей Сайт пользователя 18.02.2010 10:34
цитата
Profile
koska©

Постов: 2352
Дата регистрации: 18.12.2006
для: F3©,
VBA не предназначен для работы с внешними документами, особенно если какие-то "посторонние" для экселя форматы. Точнее, крайне плохо для этого приспособлен. Но задача решаема.

1) Метод Workbook.OpenText открывает текстовый файл в таблицу (параметры ищите в хэлпе или воспользуйтесь записью макроса чтобы "снять слепок").
2) Затем простым перебором строк в цикле вырежете все, что вам нужно. Естественно, каких-то человеческих инструментов для работы со строками (вроде регулярных выражений) в VBA также нет, поэтому придется кондовым, типа

If Left(Cells(row,column).Text, 6)="Город:" Then city=Right(Cells(row,column).Text,Len(Cells(row,column).Text)-6)

и так далее... Спрашивайте, если косноязычно написал.

UPD. Забирайте архив, распаковывайте в отдельную папку и тестируйте. Неоптимально, но работает, как пример думаю сойдет. Лучше за 10 минут кофе-брейка сделать не могу :)

attachment
ExclMacro.rar

Да 0 Нет 0
Пользователь в OffLine Послать приватное сообщение Добавить пользователя в список друзей 18.02.2010 11:17
цитата
В настоящий момент эту тему просматривают: участников - 0, гостей - 1.
Только зарегистрированные пользователи могут оставлять сообщения в этом форуме


Форумы на Sostav.ru / Общие вопросы / Макрос для работы с заявками
© "ООО Состав.ру" 1998-2024

тел/факс: +7 495 225 1331 адрес: 109004, Москва, Пестовский пер., д. 16, стр. 2

При использовании материалов портала ссылка на Sostav.ru обязательна!
Администрация Sostav.ru просит Вас сообщать о всех замеченных технических неполадках на E-mail
Rambler's Top100   18+   Словарь маркетинговых терминов