„Excel“ - makro kopijavimas į langelį pagal konkrečius kriterijus

Problema

Aš užstrigau. Tikiuosi, kad kas nors šiandien gali man padėti. Turiu Excel skaičiuoklę su 1400 eilučių. Pirmosios 3 eilutės yra nesvarbios (antraštės). Turiu 3 ląsteles su $ tring turiniu (B: C: D). Ką turėčiau padaryti, yra sukurti makrokomandą, kuri specialiai gali atrodyti B stulpelyje ir D stulpelyje dėl nulinės vertės. Šioje skaičiuoklėje yra keletas langelių, kurių vertė turi būti tokia pati. B ir D stulpeliai turi būti lyginami ir turi būti surinkti su nulinės vertės. Tuo pačiu atveju, kai taip pat randamas B stulpelis (kilpa) (tas pats langelio turinys, bet kita eilutė), kolonėlė D bus nulinė (trūksta turinio). Turiu užpildyti šį D D turinį tokiu pačiu turiniu, kaip ir pirmasis įrašas, kuriame buvo B ir D kolonėlių turinys. Mano pavyzdyje vertė yra sunkiai koduojama, aš nežinau, kaip dar tai padaryti. Aš labai prarastas ir man reikia šiek tiek pagalbos, kad galėčiau tai užbaigti. Tai aš turiu.

 Sub _MacroUser10 () Set I = darbalapiai ("Sheet2") Dim d Dim jd = 1 "kilpos skaitiklis j = 4" prasideda ketvirtoje eilutėje dėl antraščių Do to ActiveCell (I.Range ("B" ir j) = " „User Portfolio Group“) ir „ActiveCell“ (I.Range („D“ ir „n“)) „kilpa“ Jei I.Range („B“ ir j) = "User2010" Tada "langelis yra vartotojo2010 ... ir tt .Range ("D" & j) = "" Tada reikia rasti nulinę vertę D d = d + 1 pabaigoje Jei i.Rows (d) .Value = I.Rows (j). j = j + 1 kilpos pabaigos sub 

Apskritai. Turiu ieškoti turinio B ląstelėje ir ieškoti turinio ląstelėje D $. Abiejose vietose bus viena eilutė su turiniu. Tada turiu rasti visas kitas atitikimo eilutes, atitinkančias B $, kurios neturi jokių reikšmių D $. Turiu pridėti tas trūkstamas reikšmes iš nulinės D $ į nulinį D $.

Sprendimas

Jei visada yra, kad užpildyta eilutė atsiras prieš tuščią, tuomet galite naudoti žodyno objektą. Už tai

  • Pasibaigus pirmajai eilei, pasukite
  • Jei abi ląstelės nėra tuščios, sujunkite B ir D reikšmę kaip reikšmę ir C vertę.
  • Kai einate per eilutes, pirmiausia patikrinkite, ar šis raktas yra žodynuose, jei taip, jūs turite kitą vertę į žodyną

 „sukurti dic objekto rinkinį dicMyDic = CreateObect („ Scripting.Dictionary “)„ taip raktas gali būti strKey = B1 & „|“ & D1 „patikrinkite, ar D reikšmė yra tuščia, ar ne“, jei norite pridėti reikšmę dic, jei ne (dicMyDic.Exists (strKey)), tada dicMyDic.Add raktas: = strKey, elementas: = val ', kad gautumėte reikšmę iš DIC IF (dicMyDic.Exists (strKey)), tada val = dicMyDic (strKey) 

Ačiū rizvisa1 už šį patarimą.

Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai