![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 31.10.2010
Сообщений: 4
|
![]()
Добрый день,товарищи.Встала задача.
есть лист экселя с таблицой вида ___________ номер|улица| ------------- 18311 |адрес1 23321 |адрес2 18311 | данные в таблице повторяются.Необходимо заполнить все строки адрес - улица соответственно. В примере у нас первая строка имеет номер 18311 и адрес 1. Третья строка имее тот же номер,но значение адреса не имеет(ячейка пустая). Необходимо заполнить все строки с одинаковыми номерами в ячейках соответствующими значениями адреса.Как это реализовать в VB? |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]() Цитата:
Номера и названия дайте как в оригинале
Анализ,обработка данных Недорого
|
|
![]() |
![]() |
![]() |
#3 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Попробуйте такой вариант:
Вот весь макрос: Код:
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 31.10.2010
Сообщений: 4
|
![]()
Вот образец файла,неудобно конечно просить сделать за меня,но времени на изучение просто нет.Если вам не трудно,буду очень благодарен.
Смысл в том,что в файле очень много строк. Данные в строке индекс(номера) повторяются на протяжении всего файла.Необходимо заполнить ячейку справа от индекса значением адреса.Значение адреса ранее уже сопоставлено с индексом.Т.е скопировать значение адреса во все ячейки с таким же индексом. |
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 31.10.2010
Сообщений: 4
|
![]()
макрос,предложенный EducatedFool работает,но только для примера который приводил выше.Если вы немного прольете свет на логику программного кода,то я попробую доделать его самостоятельно.
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
![]()
Ещё вариант:
Код:
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
![]()
Через массив будет работать значительно быстрей
Код:
|
![]() |
![]() |
![]() |
#9 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Код с комментариями:
Код:
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
![]()
EducatedFool, давно хотел заметить по поводу часто употребляемой вами
конструкции вида Код:
будет строка Rows.Count ) она к сожалению неверна. К своему удивлению, за последний месяц трижды столкнулся у разных клиентов с данными в 65536 строке в Excel 2003... Особенно это характерно для обработчиков всяческих реестров. Часто люди переносят лист из Excel 2007-2010 в Excel 2003 c разбивкой по листам 2003 с учётом ограничения на максимальное число строк. Теперь после получения индекса строки по .End(xlUp).Row всегда проверяю, что нижележащая ячейка пустая ![]() Последний раз редактировалось Aent; 01.11.2010 в 21:45. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос для конвертации таблицы Excel | Yarr | Microsoft Office Excel | 1 | 13.08.2010 10:47 |
Макрос для формирования таблицы в Excel | konistra | Microsoft Office Excel | 6 | 28.05.2010 23:32 |
Макрос для сводной таблицы | kipish_lp | Microsoft Office Excel | 2 | 21.04.2010 10:58 |
макрос для заполнения таблицы | ruavia3 | Microsoft Office Excel | 4 | 09.09.2009 15:11 |
Макрос для таблицы | Radagest | Microsoft Office Excel | 3 | 17.07.2009 20:58 |