Formų pildymas duomenimis iš lentelės

Problemos formulavimas

Turime duomenų bazę (sąrašą, lentelę – vadinkite kaip norite) su informacija apie mokėjimus lape Duomenys:

užduotis: greitai išspausdinkite bet kurio iš šio sąrašo pasirinkto pageidaujamo įrašo kasos kvitą (mokėjimą, sąskaitą faktūrą ...). Pirmyn!

1 veiksmas. Sukurkite formą

Kitame knygos lape (vadinkime šį lapą forma) sukurkite tuščią formą. Tai galite padaryti patys, galite naudoti paruoštas formas, paimtas, pavyzdžiui, iš žurnalo vyriausiojo buhalterio svetainių arba „Microsoft“ svetainės. Gavau kažką tokio:

Formų pildymas duomenimis iš lentelės

Tuščiose ląstelėse (Sąskaita, suma, gauta iš ir tt) duomenis iš mokėjimų lentelės gaus iš kito lapo – kiek vėliau tuo užsiimsime.

2 veiksmas: mokėjimų lentelės paruošimas

Prieš paimant duomenis iš lentelės mūsų formai, lentelę reikia šiek tiek modernizuoti. Būtent įterpkite tuščią stulpelį lentelės kairėje. Norėdami įvesti etiketę (tebūnie tai angliška raidė „x“), naudosime prieš eilutę, iš kurios norime įtraukti duomenis į formą:

3 žingsnis. Lentelės ir formos susiejimas

Bendravimui naudojame funkciją VPR(ŽIŪRĖTI) – daugiau apie tai galite paskaityti čia. Mūsų atveju, norėdami į formos langelį F9 įterpti mokėjimo numerį, pažymėtą „x“, iš Duomenų lapo, langelyje F9 turite įvesti šią formulę:

=VLOOKUP("x",duomenys!A2:G16)

=VLOOKUP("x";Duomenys!B2:G16;2;0)

Tie. Išvertus į „suprantama“, funkcija Duomenų lapo diapazone A2: G16 turėtų rasti eilutę, prasidedančią simboliu „x“, ir mums pateikti antrojo šios eilutės stulpelio turinį, ty mokėjimo numerį.

Visi kiti formos langeliai užpildomi taip pat – formulėje keičiasi tik stulpelio numeris.

Norėdami parodyti sumą žodžiais, naudojau funkciją Pačių iš PLEX priedo.

Rezultatas turėtų būti toks:

Formų pildymas duomenimis iš lentelės

4 veiksmas. Kad nebūtų dviejų „x“…

Jei vartotojas įveda „x“ keliose eilutėse, funkcija VLOOKUP paims tik pirmąją rastą reikšmę. Norėdami išvengti tokio neaiškumo, dešiniuoju pelės mygtuku spustelėkite lapo skirtuką Duomenys ir tada Šaltinio tekstas (Pirminis kodas). Pasirodžiusiame Visual Basic redaktoriaus lange nukopijuokite šį kodą:

Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Long Dim str As String If Target.Count > 1 Tada išeikite iš sub, jei Target.Column = 1 Tada str = Target.Value Application.EnableEvents = False r = Cells(Rows.Count , 2).Pabaiga(xlUp).Eilučių diapazonas("A2:A" & r).ClearContents Target.Value = str Pabaiga, jei Application.EnableEvents = True End Sub  

Ši makrokomanda neleidžia vartotojui įvesti daugiau nei vieno „x“ pirmajame stulpelyje.

Na, tai viskas! Mėgautis!

  • Funkcijos VLOOKUP naudojimas reikšmėms pakeisti
  • Patobulinta funkcijos VLOOKUP versija
  • Suma žodžiais (funkcija Propis) iš PLEX priedo

 

Palikti atsakymą