Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
24.04.2024, 12:56:05

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 242 Сообщений в 5 457 Тем от 6 761 Пользователей
Последний пользователь: Halfdoor
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  поиск по списку и запись данных в ячейку с помощью циклов
Страниц: [1]   Вниз
Печать
Автор Тема: поиск по списку и запись данных в ячейку с помощью циклов  (Прочитано 3020 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vadim
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 2


Просмотр профиля E-mail
« : 16.04.2019, 13:44:24 »

Комментарий администратора Название темы должно быть максимально информативным, таким, чтобы уже из названия темы другим пользователям была приблизительно понятна Ваша проблемап.п. 4.2. и 4.14. Правил форума
Вообщем, у меня была задача.
- Есть список номеров деталей А
- Есть кросс-лист, где для деталей А в соседней ячееке проставлен аналог B

Нужно для каждого номера А из Списка проставить в соответствие аналоги. Причем аналогов много, а ячейка одна, и все они должны в нее записаться. Изначально я пытался сделать это через Do Until IsEmty(ActiveCell)
Но все мои попытки не увенчались успехом. И в итоге я просто подсчитал количество строк и упростил код, сделав его не универсальным, а под конкретно мою задачу и использовал два for each. Один работает со списком, а другой с Аналогами.

Код: (vb)

Sub MySub()
 For Each Element In Range(Cells(1, 1), Cells(80, 1))
  x = Element
  For Each Cell In Range(Cells(1, 3), Cells(5922, 3))
   y = Cell
   If x = y Then
    Cell.Activate
    Element.Offset(0, 1) = Element.Offset(0, 1) & ", " & ActiveCell.Offset(0, 1)
   End If
  Next Cell
 Next Element
End Sub


Буду рад если напишите как этот небольшой скрипт можно доработать. Чтобы он стал более универсальным. Напомню это мой первый нормально работающий макрос. Раньше немного изучал PHP.
« Последнее редактирование: 17.04.2019, 18:34:58 от Дмитрий Щербаков(The_Prist) » Записан
sboy
Постоялец
***

Репутация: +27/-0
Офлайн Офлайн

Сообщений: 207


Просмотр профиля E-mail
« Ответ #1 : 16.04.2019, 13:53:12 »

Добрый день.
Каждый раз обращаться к ячейкам - не оптимальный путь по времени работы и нагрузки на комп. По разному можно доработать, через массивы, словарь или коллекцию, запросом Power Query. Надо видеть пример данных
« Последнее редактирование: 16.04.2019, 14:07:41 от vikttur » Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #2 : 16.04.2019, 15:39:56 »

Написал свой первый макрос
Мы рады за Вас Улыбка Но хотелось бы, чтобы создавая тему на форуме Вы и правила бы прочитали - в конце концов Вы с ними соглашались регистрируясь на форуме:
Цитировать
Название темы должно быть максимально информативным, таким, чтобы уже из названия темы другим пользователям была приблизительно понятна Ваша проблемап.п. 4.2. и 4.14. Правил форума

Предложите новое название - поменяем сами(у Вас уже не получится).
Глядишь пока будете название темы выдумывать и задача сформируется так, что понятна будет не только Вам. Пока даже прочитав описание неясно чего Вы хотите. И примера данных нет. В общем Вам сначала сюда: Зачем темам давать осмысленное название?
« Последнее редактирование: 16.04.2019, 15:42:01 от Дмитрий Щербаков(The_Prist) » Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Vadim
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 2


Просмотр профиля E-mail
« Ответ #3 : 17.04.2019, 17:09:57 »



"Доработка макроса: поиск по списку и запись данных в ячейку с помощью циклов" Такое название подойдет?
« Последнее редактирование: 17.04.2019, 18:52:05 от vikttur » Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #4 : 17.04.2019, 18:35:23 »

Такое название подойдет?
Более чем! Спасибо, изменил.

Как вариант для усовершенствования своего кода, можете глянуть код из статьи: Как сцепить несколько значений в одну ячейку по критерию? СцепитьЕсли
Задача точно такая же решается.
« Последнее редактирование: 17.04.2019, 18:43:41 от Дмитрий Щербаков(The_Prist) » Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru