Excel - haku- ja näyttökysely

Ongelma

Olen ei-IT-henkilö. Minulla on yksinkertainen vaatimus, mutta en tiedä miten mennä.

Vaatimus on

 Omat tiedot. Sno Release Project Yhteyshenkilöt 1. huhtikuuta SYL Sam, Mark, Tom 2. toukokuuta Xim Tom, Frank, Kim 3. kesäkuuta TIG Kim, David, Sam 

Minun vaatimukseni on, kun haun projektin tai julkaisun avulla,, Minun täytyy saada kaikki yhteyshenkilön nimet. Samoin, jos etsin yhteyshenkilön nimellä .. Esim. Sam yllä olevassa esimerkissä. Excelin täytyy näyttää minulle kaikki projektit, joihin Sam osallistui kaikkien asiaankuuluvien tietojen, kuten julkaisun jne., kanssa. Tämä on näytettävä uudessa arkissa Excelissä.

Onko mahdollista tehdä Excelissä tai minun täytyy kokeilla jotain muuta? Voitteko auttaa minua tässä?

Ratkaisu

oletukset:

  • 1. Levyn nimi, jossa tiedot ovat "Sheet1" (korjaa koodi, jos se ei ole)
  • 2. Sivun nimi, johon hakutulos liitetään, on "Tulos" (korjaa koodi, jos se ei ole)
  • 3. Aiemmat hakutulokset hylätään
  • 4. Tiedot ovat neljässä sarakkeessa (kuten näytteessä)

ASKELEET:

  • 1. Lue oletukset
  • 2. Tee varmuuskopio
  • 3. Paina ALT + F11 samanaikaisesti päästäksesi VBE-ympäristöön
  • 4. Napsauta "Lisää" ja lisää uusi moduuli
  • 5. Liitä koodi (ohjeiden jälkeen)
  • 6. Suorita koodi

Koodi:

 Sub SearchData () Dim lMaxRows As Long 'max sarakkeiden A-sarakkeeseen perustuvien solujen rivien lukumäärä Dim lFilterRows Kuten pitkä' suodatettu viimeinen rivi Dim searchRel As Variant 'mitä on haettava Julkaisutiedot Dim searchProj As Variant' mikä on etsiä projektitietoa Dim searchPpl As Variant 'mitä on haettava Yhteystieto Dim sDataSheet Kuten merkkijono' tietosivun nimi Dim sResultSheet Kuten merkkijono ', tulosarkin nimi sDataSheet = "Sheet1"' tietosivun nimi sResultSheet = "Tulos" 'tulosarkin nimi' hakukriteerien hakeminen searchRel = InputBox ("Mitä julkaisua haluat etsiä. Ohita, paina OK.") searchProj = InputBox ("Mitä projektia haluat etsiä. Ohita, paina OK. ") searchPpl = InputBox (" Mikä yhteyshenkilö haluat etsiä. Ohita, paina OK. ") 'poista valkoiset välit searchRel = Trim (searchRel) searchProj = Trim (searchProj) searchPpl = Trim (hakuPpl) ) 'jos kaikki kolme hakukriteeriä ovat tyhjiä, älä tee mitään jos (Len (searchRel & searchProj & searchPpl) = 0) Sitten Exit Sub On Error Jatka Next Application.DisplayAlerts = False 'poista edellinen tulosarkki, jos se on olemassa Sheets (sResultSheet) .Delete Application.DisplayAlerts = True On Error GoTo 0' lisäämällä tulosarkki Sheets.Add ActiveSheet.Name = sResultSheet Sheets (sDataSheet) .Valitse solut.Valitse 'poistamalla suodatin Jos ActiveSheet.AutoFilterMode sitten virheen jatkaminen Seuraava ActiveSheet.ShowAllData On Error GoTo 0 End Jos lMaxRows = solut (rivit.Laskenta, "A"). (xlUp) .Row Jos ActiveSheet.AutoFilterMode = False sitten valinta.AutoFilter End Jos If (searchRel) "" Sitten valinta.AutoFilter Kenttä: = 2, kriteerit1: = "=" & hakuRel, Operaattori: = xlAnd, kriteerit2: = " "Lopeta jos If (searchProj)" "Sitten Selection.AutoFilter Field: = 3, kriteerit1: =" = "& searchProj, Operaattori: = xlAnd, kriteerit2: =" "Lopeta jos If (searchPpl)" "Sitten valinta.AutoFilter Field : = 4, kriteerit1: = "= *" & searchPpl & "*", operaattori: = xlAnd, kriteerit2: = "" loppu Jos lFilterRows = solut (rivit.lasku, "A"). Loppu (xlUp). ( "A1: D" & lFilterRows) .Kopioi arkit (sResultSheet) .Valitse alue ("A1"). Valitse ActiveSheet.Paste Sheets (sDataSheet) .Valitse solut.Valitse "Poista kaikki suodattimet Jos ActiveSheet.AutoFilterMode sitten päälle" Jatka seuraavaa ActiveSheet.ShowAllData Virhe GoTo 0 Lopeta, jos loppu 

Huomautus

Kiitos rizvisa1: stä tästä vinkistä foorumissa.

Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä