|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.06.2009, 10:47 | #1 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 56
|
Макрос с диалоговым окном. Возможно такое?
Касательно переноса данных. Задача следующая: необходим макрос при старте которого появлялось диалоговое окно в котором:
Поле 1: выбор диапазона работы макроса Поле2: что ищем. Поле три где вставляем. Я вижу это так: В поле 1 указываем например столбец "B", в поле 2 указываем "ул.", в поле 3 указываем ",". Что делает макрос: В выделенном диапазоне просматривает ячейки слева направо, если в начале ячейки находит "ул.", то переносит в место перед следующим символом "," Например ул. Ленина, д1 Результат Ленинаул., д1 Господа помогите, а то необходимо ежедневно обрабатывать файл размером более 2000 строк с такой бедой, по полдня трачу на это дело, хотя подозреваю что можно сделать чтобы обрабатывалось гораздо быстрее. |
09.06.2009, 10:58 | #2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Я-то думал, тот файл - это единичный случай. Можно сделать и без диалогового окна, если единственная его цель - выполнить обработку, описанную в этой теме. Если будет время сегодня вечером - постараюсь сделать. Если у Вас есть возможность разговаривать через Скайп - было бы очень неплохо (чтобы обсудить все нюансы обработки) |
|
09.06.2009, 11:25 | #3 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 56
|
Skype к сожалению нет, работаю на режимном объекте доступ ко всему минимальный. Может повторюсь но суть такова, что мне присылают файл с адресами в одном из столбцов, мне необходимо подгрузить данный файл на сайт, и если ячейка начинается с "ул.", "б-р", "наб.", "пер." и тд. то отображается все некоректно. задача состоит в том, чтобы тип застройки (б-р, ул., наб, и тд.) если он стоит до названия шел после названия через пробел. Если типа застройки нет, то и не надо (потому как реализовать это даже не представляю как можно)
В предыдущей теме я в архив "Адреса" вкладывал Word файл с структурой которая должна быть. Адреса которые нужно обработать прикреплены здесь. Последний раз редактировалось Zhiltsov; 09.06.2009 в 11:31. |
09.06.2009, 12:38 | #4 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите один из возможных вариантов во вложении. Запустите макрос "Main".
Чем шире угол зрения, тем он тупее.
|
09.06.2009, 13:09 | #5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Вот ещё один вариант:
Код:
Пример во вложении: (нажмите зелёную кнопочку) |
09.06.2009, 13:42 | #6 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 56
|
Спасибо огромное!!!
В варианте адреса2 почему то не все строки обрабатывает. EducatedFool, а можно в варианте Адреса сделать так чтобы результат изменений заменял исходный вариант? |
09.06.2009, 13:45 | #7 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Вывод в соседнюю ячейку я сделал лишь для удобства сравнения исходных и обработанных строк. Замените в макросе ОбработкаАдресов строку cell.Next = ОбработатьТекст(cell) на строку cell = ОбработатьТекст(cell) |
|
09.06.2009, 13:54 | #8 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 56
|
Отлично!
А если у меня изменится столбец в котором будут адреса, мне достаточно изменить данные здесь: Range([a2], Range("a65000") ? |
09.06.2009, 14:21 | #9 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Да.
Для столбца D это будет выглядеть так: Set ra = Range([d2], Range("d65000").End(xlUp)) (начиная с ячейки D2, и заканчивая последней заполненной ячейкой в столбце D) Можете также указать любой другой диапазон: Код:
Set ra = Range("a6, a8:a1200, a1205:a1209, b4:b664") |
09.06.2009, 14:24 | #10 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 56
|
Все! Отлично работает!!!
Господа вы молодцы! Браво вам! Спасибо! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Возможно ли такое выделение или нет | xxxsas | JavaScript, Ajax | 4 | 17.03.2009 14:05 |
Проблема с диалоговым окном | artemavd | Общие вопросы Delphi | 10 | 28.11.2008 19:33 |
Возможно реализовать такое | Devourer12345 | Microsoft Office Access | 10 | 15.08.2008 08:08 |
Возможно ли такое? (Программирование станка) | Az_ | Микроконтроллеры, робототехника, схемотехника, 3D принтеры | 4 | 07.04.2008 07:30 |
Возможно ли такое...если да то как это сделать?! | prizrak1390 | Общие вопросы Delphi | 9 | 03.01.2008 10:14 |