Darbo lapo funkcijos VBA makrokomandose naudojant VBA „Microsoft Excel“

Anonim

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ę