Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2010, 12:03   #1
andreton
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 25
Вопрос копирование из одной ячейки в множество ячеек с одинаковыми параметрами

Добрый день всем!

Подскажите, кто знает, как автоматически скопировать значение одной ячейки с определенным параметром в множество ячеек с таким же параметром. Пример в файле: Исх - то что есть, Вых - то, что должно получиться. Позиций может быть намного больше. Заранее, спасибо!
Вложения
Тип файла: rar primer.rar (8.2 Кб, 15 просмотров)
andreton вне форума Ответить с цитированием
Старый 03.11.2010, 12:59   #2
Daddy
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 10
По умолчанию

Если поменять столбцы местами, то можно воспользоваться функцией "=впр()" в сочетании с "=сцепить" (если я правильно понял что ты хочешь)
Daddy вне форума Ответить с цитированием
Старый 03.11.2010, 13:06   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Алгоритм такой - берём оба диапазона каждый в свой массив.
Затем тупо перебором цикл в цикле.
Внешний - по массиву с критериями, внутренний - по данным, куда нужно добавить цифры.
При совпадении - добавляем в массив цифры.
В конце выгрузка результата.
Если важно время - можно для результатов сделать два отдельных массива (параллельно с массивом данных) и заносить цифры в них и выгружать только их (а проверять массив с данными).

Нужен сам код или уже понятно?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.11.2010, 13:13   #4
Daddy
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 10
По умолчанию

"Затем тупо перебором цикл в цикле." если решать проблему программно, то полностью согласен, но "берём оба диапазона каждый в свой массив" это зачем? Если данных может быть намного больше, то оперативка ведь не резиновая.
Daddy вне форума Ответить с цитированием
Старый 03.11.2010, 13:17   #5
andreton
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 25
По умолчанию

как это будет работать - не ясно пришли реализованный пример (с функциями)

нужно чтобы нажатием одной единой клавиши(макросом) свершилось чудо!
andreton вне форума Ответить с цитированием
Старый 03.11.2010, 13:21   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от Daddy Посмотреть сообщение
"Затем тупо перебором цикл в цикле." если решать проблему программно, то полностью согласен, но "берём оба диапазона каждый в свой массив" это зачем? Если данных может быть намного больше, то оперативка ведь не резиновая.
Я думаю, лист Экселя с данными, как в примере, в память поместиться должен.
Ну а если не лезет, можно ведь брать частями.
Или Вы предлагаете перебирать ячейки, если данных так много, что в память не помещаются?
Или это намёк на ADO?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.11.2010, 13:21   #7
andreton
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 25
По умолчанию

Hugo121, нужен код, если не сложно... нет времени разбираться...
andreton вне форума Ответить с цитированием
Старый 03.11.2010, 13:32   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Схематично, на двух массивах:
Код:
Sub ciklVcikle()
Dim a, b
Dim i As Long, ii As Long
a = [a1:f8]
b = [h1:m25]

For i = 1 To UBound(a)
For ii = 1 To UBound(b)
If b(ii, 2) = a(i, 3) Then
If b(ii, 3) = a(i, 4) Then
If b(ii, 5) = a(i, 5) Then
If b(ii, 6) = a(i, 6) Then
b(ii, 1) = a(i, 1): b(ii, 4) = a(i, 2)
End If
End If
End If
End If
Next ii, i

[h1:m25] = b
End Sub
Добавьте динамическое определение диапазонов.
Ну или просто тупо пропишите в коде.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.11.2010, 13:55   #9
andreton
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 25
По умолчанию

Спасибо огромное! Все сработало очень даже нормально! Выручили! Вопрос решен!
andreton вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обїединение ячеек с одинаковыми значениями WORD Сергей846 Microsoft Office Word 9 19.08.2016 22:48
Копирование строк таблицы по условию одной ячейки из Лист 1 в Лист 2 Людвиг Microsoft Office Excel 5 25.10.2014 11:46
Множество вопросов по одной БД Жменька Фриланс 2 13.01.2010 02:15
Группировка в строку ячеек с одинаковыми данными Vanot Microsoft Office Excel 2 24.08.2009 01:01