Поиск и выборка данных из массива с распределением по разным листам, согласно условию отбора - VBA
Формулировка задачи:
Добрый день.
Подскажите, пожалуйста, как можно решить задачу с выборкой данных с общего листа и распределение этих данных по другим листам, согласно выставленным условиям?
На первом (основном ) листе в столбце №1 указаны номера кабинетов, в которых сидят сотрудники (причем в одном и том же кабинете сидит несколько сотрудников, кабинеты указаны вразнобой и их нельзя упорядочить). В столбце №2 указаны фамилии сотрудников. Таким образом, напротив каждого номера кабинета расположена фамилия сотрудника. Пример:
43 Иванов
44 Петров
45 Сидоров
44 Смирнов
Т.е. в кабинете 43 сидит Иванов, в кабинете 44 – Петров и Смирнов, в кабинете 45 – Сидоров.
Остальным листам присвоены наименования согласно номеру кабинета. На выходе должно получиться : на листе 43 одна строка со значением Иванов, на листе 44 – две строки Петров и Смирнов, на листе 45 – Сидоров.
Решение задачи: «Поиск и выборка данных из массива с распределением по разным листам, согласно условию отбора»
textual
Листинг программы
Sub PereborFailov() 'коллекция в словаре Dim a, i&, t$, Dic As Object Dim el, col a = Range("C3", Cells(Rows.Count, "A").End(xlUp)).Value Set Dic = CreateObject("Scripting.Dictionary") With Dic .CompareMode = 1 For i = 1 To UBound(a) t = a(i, 1) If Not .exists(t) Then .Add t, New Collection .Item(t).Add a(i, 2) & "|" & a(i, 3) & "|" & i Next End With For Each el In Dic.keys Debug.Print "Открываем файл " & el For Each col In Dic.Item(el) Debug.Print "Ищем данные " & col Next Debug.Print "Закрываем файл " & el Next End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д