Екцел - Упит за претрагу и приказ

Питање

Ја нисам ИТ особа .. Имам једноставан захтјев, али не знам како да идем.

Захтев је

 Моји подаци. Сно Релеасе Пројецт Контакт особе 1 Апр СИЛ Сам, Марк, Том 2 Мај Ксим Том, Франк, Ким 3 Јун ТИГ Ким, Давид, Сам 

Мој захтјев је када сам тражи по пројекту или издавањем, морам добити све име особе за контакт .. На исти начин ако сам тражи по имену контакт особе .. Нпр. Сам у горњем примјеру .. Екцел мора показати ми Сви пројекти које је Сам укључио са свим релевантним подацима као што су Релеасе итд. ... Ово мора бити приказано у новом листу у Екцелу.

Да ли је могуће у Екцелу или морам да пробам нешто друго? Можеш ли ми помоћи у томе?

Решење

Претпоставке:

  • 1. Име листа где су подаци "Лист1" (исправите код ако није)
  • 2. Име листа на коме треба да се налази резултат претраге је "Резултат" (исправите код ако није)
  • 3. Претходне резултате претраживања треба одбацити
  • 4. Подаци се налазе на 4 колоне (као у узорку)

КОРАЦИ:

  • 1. Прочитајте претпоставке
  • 2. Направите сигурносну копију
  • 3. Притисните АЛТ + Ф11 истовремено да уђете у ВБЕ окружење
  • 4. Кликните на "Инсерт" и додајте нови модул
  • 5. Залијепите код (након упута)
  • 6. Покрените код

Код:

 Под СеарцхДата () Дим лМакРовс Ас Лонг 'максималан број редова података базираних на ћелијама које се користе на колони А Дим лФилтерРовс Ас Лонг' последњи филтрирани ред Дим сеарцхРел Ас Вариант 'шта треба тражити за Релеасе Инфо Дим сеарцхПрој као варијанта' шта је да се тражи за информације о пројекту Дим сеарцхПпл као варијанта 'шта треба да се тражи за информације о контакту Дим сДатаСхеет Ас Стринг' име листа са подацима Дим сРесултСхеет Ас Стринг 'име листа резултата сДатаСхеет = "Схеет1"' име листа са подацима сРесултСхеет = "Резултат" 'име листа резултата' добијање критеријума за претрагу сеарцхРел = ИнпутБок ("Шта желите да претражите. Да бисте прескочили, само притисните ОК.") сеарцхПрој = ИнпутБок ("Који пројекат желите да претражите., само притисните ОК. ”) сеарцхПпл = ИнпутБок (" Која контакт особа желите да претражите. Да прескочите, само притисните ОК. ") 'ремове вхите спацес сеарцхРел = Трим (сеарцхРел) сеарцхПрој = Трим (сеарцхПрој) сеарцхПпл = Трим (сеарцхПпл) ) 'ако су сва три критеријума претраге празна, онда немојте ништа радити ако (Лен (сеарцхРел & сеарцхПрој & сеарцхПпл) = 0) Затим Екит Суб Он Еррор Настави Нект Апплицатион.ДисплаиАлертс = Фалсе 'избриши претходни лист резултата ако постоји Схеетс (сРесултСхеет) .Делете Апплицатион.ДисплаиАлертс = Труе Он Еррор ГоТо 0' додавање листова резултата Схеет.Адд АцтивеСхеет.Наме = сРесултСхеет Схеетс (сДатаСхеет) .Селецт Целлс.Селецт 'ремове ани филтер Ако АцтивеСхеет.АутоФилтерМоде Затим На Грешка Настави Нект АцтивеСхеет.СховАллДата На Грешка ГоТо 0 Крај Ако лМакРовс = Ћелије (Ровс.Цоунт, "А"). (клУп) .Ров Ако АцтивеСхеет.АутоФилтерМоде = Фалсе онда Селецтион.АутоФилтер Енд Ако Иф (сеарцхРел) "" Затим Селецтион.АутоФилтер Фиелд: = 2, Цритериа1: = "=" & сеарцхРел, Оператор: = клАнд, Цритериа2: = " "Енд Иф Иф (сеарцхПрој)" "Затим Селецтион.АутоФилтер Фиелд: = 3, Цритериа1: =" = "& сеарцхПрој, Оператор: = клАнд, Цритериа2: =" "Енд Иф Иф (сеарцхПпл)" "Затим Селецтион.АутоФилтер Фиелд : = 4, Цритериа1: = "= *" & сеарцхПпл & "*", Оператор: = клАнд, Цритериа2: = "" Енд Ако лФилтерРовс = Целлс (Ровс.Цоунт, "А"). Енд (клУп) .Ров Ранге ("А1: Д") & лФилтерРовс) .Цопи Схеетс (сРесултСхеет) .Селецт Ранге ("А1") .Одаберите АцтивеСхеет.Пасте Схеетс (сДатаСхеет) .Селецт Целлс.Селецт 'ремове ани филтер Ако АцтивеСхеет.АутоФилтерМоде онда на грешка Настави Нект АцтивеСхеет.СховАллДата на грешка 0 Енд Иф Енд Суб 

Белешка

Хвала ризвиса1 за овај тип на форуму.

Претходни Чланак Sledeći Чланак

Топ Савети