Jei VBA kode turite nurodyti tam tikras darbalapio funkcijas, pvz., „Sum“, „Vlookup“ ir kt., Galite jas naudoti tiesiogiai naudodami „Application“ objektą. Taigi mes naudosime šias funkcijas:
Application.WorksheetFunction.Sum arba Application.WorksheetFunction.Vlookup kur „WorksheetFunction“ yra programos objekto metodas.
Atsižvelgiant į tai, kad mes turime šią bandymo makrokomandą, jei rašome
Application.WorksheetFunction.
Gausime iššokantį langą, kuriame bus pateiktos formulės, pateiktos žemiau esančiame paveikslėlyje
Pavyzdžiui, jei norite susumuoti šio diapazono reikšmes A stulpelyje naudodami vba -
Turime kintamąjį, vadinamą „SalesTotal“, kuris sutaupys jame esančią sumą. Norėdami gauti bendrą „SalesTotal“, standartiniame modulyje naudosime šį VBA kodą:
4 antroji makrokomanda ()„Dim Sales“ Iš viso taip ilgai
SalesTotal = Application.WorksheetFunction.Sum (Diapazonas („A2: A6“))
„MsgBox SalesTotal“
Pabaiga Sub
Norėdami nukopijuoti aukščiau pateiktą kodą į savo failą,
- Klaviatūroje paspauskite Alt + F11.
- Kairėje pusėje matysite „Microsoft Excel“ objektus.
- Dešiniuoju pelės mygtuku spustelėkite ir pasirinkite Įterpti.
- Tada spustelėkite „Modulis“.
- Nukopijuokite kodą į kodo langą dešinėje.
Kai naudosime šią pavyzdinę makrokomandą, gausime pranešimą, rodantį vertę, kuri yra išsaugota „Sales Total“ ir gali būti naudojama kitose makrokomandos kodo eilutėse.
Rezultatas, kurį gausime, yra -
Jei norite, kad „SalesTotal“ būtų rodomas langelyje A7, galite pakeisti kodo eilutę iš
„Msgbox SalesTotal“į Darbo lapai („Sheet1“). Diapazonas („A7“). Vertė = SalesTotal
Atsižvelgiant į tai, kad mums taip pat reikia vidutinių šių skaičių pardavimų A9 langelyje. Mes galime naudoti žemiau esantį kodą
Antroji makrokomanda ()„Dim Sales“ Iš viso taip ilgai
Su darbalapiais („Sheet1“)
SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))
.Range ("A7"). Vertė = SalesTotal
.Range ("A9"). Reikšmė = Application.WorksheetFunction.Average (.Range ("A2: A6"))
Pabaiga su
Pabaiga Sub
Palyginti su ankstesniu, šis kodas šiek tiek pasikeitė.
- Užuot naudojęs kintamąjį vidurkiui, aš apskaičiavęs šią vertę tiesiogiai užpildžiau langelį A9. Taigi pamatysite eilutę .Range („A9“). Vertė = Application.WorksheetFunction.Average (.Range („A2: A6“))
- „Msgbox“ eilutė pašalinta.
- Kintamojo „SalesTotal“ vertė patenka į langelį A7.
- Idealiu atveju galite pakartoti tą pačią kodo eilutę, kuri buvo naudojama vidurkiui, sumos kodo eilutei pakeičiant
SalesTotal = Application.WorksheetFunction.Sum (.Range („A2: A6“))
.Range („A7“). Vertė = SalesTotal
Su
.Range („A7“). Reikšmė = Application.WorksheetFunction.Sum (.Range („A2: A6“))
Tačiau jis buvo išsaugotas, kad galėtumėte suprasti skirtingus tos pačios užduoties kodavimo būdus. Panašiai naudodami „Application.WorksheetFunction“ galime naudoti ir kitas funkcijas. Visas funkcijas, kurias galime tiesiogiai naudoti darbalapyje, galime naudoti čia.
Tai palengvina kodo funkcijų naudojimą, kad galėtume apskaičiuoti reikalingas formules, nesukūrę formulės kodo.
Jei jums patiko mūsų tinklaraščiai, pasidalykite jais su draugais „Facebook“. Taip pat galite sekti mus „Twitter“ ir „Facebook“.
Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime patobulinti, papildyti ar naujovinti savo darbą ir padaryti jį geresnį. Rašykite mums adresu pašto svetainę