Funkce listu v makrech VBA pomocí VBA v Microsoft Excelu

Anonim

Pokud v kódu VBA musíte odkazovat na určité funkce listu, jako je Sum, Vlookup atd., Můžete je použít přímo pomocí objektu Application. Funkce tedy použijeme jako -

Application.WorksheetFunction.Sum nebo Application.WorksheetFunction.Vlookup kde WorksheetFunction je metoda objektu Application.

Vzhledem k tomu, že máme toto testovací makro, zadáme -li

Application.WorksheetFunction.

Dostaneme vyskakovací okno zobrazující vzorce viz obrázek níže

Pokud například chcete sečíst hodnoty tohoto rozsahu ve sloupci A pomocí vba -

Mějme proměnnou nazvanou SalesTotal, která do ní uloží částku. Abychom získali celkem v SalesTotal, použijeme ve standardním modulu následující kód VBA:

Dílčí makro4 ()
Dim SalesTotal As Long
SalesTotal = Application.WorksheetFunction.Sum (rozsah ("A2: A6"))
MsgBox SalesTotal
End Sub

Chcete -li výše uvedený kód zkopírovat do souboru,

  • Stiskněte Alt + F11 na klávesnici.
  • Na levé straně uvidíte objekty aplikace Microsoft Excel.
  • Klikněte pravým tlačítkem a vyberte Vložit.
  • Poté klikněte na Modul.
  • Zkopírujte kód do okna kódu vpravo.

Když použijeme toto ukázkové makro, dostaneme zprávu ukazující hodnotu, která je uložena v celkovém objemu prodeje a lze ji použít v dalších řádcích kódu v makru.

Výstup, který získáme, je -

Pokud chcete, aby se SalesTotal zobrazoval v buňce A7, můžete změnit řádek kódu z

Msgbox SalesTotalna Pracovní listy („List1“). Rozsah („A7“). Hodnota = SalesTotal

Vzhledem k tomu, že pro tyto údaje v buňce A9 potřebujeme také průměrné tržby. Můžeme použít níže uvedený kód

Dílčí makro5 ()
Dim SalesTotal As Long
S pracovními listy („List1“)
SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))
.Range ("A7"). Hodnota = SalesTotal
.Range ("A9"). Hodnota = Application.WorksheetFunction.Average (.Range ("A2: A6"))
Konec s
End Sub

Ve srovnání s předchozím kódem dochází k mírným změnám.

  • Namísto použití proměnné pro průměr jsem tuto hodnotu po výpočtu přímo vyplnil do buňky A9. Proto uvidíte řádek .Range („A9“). Hodnota = Application.WorksheetFunction.Average (.Range („A2: A6“))
  • Řádek msgbox byl odstraněn.
  • Hodnota v proměnné SalesTotal jde do buňky A7.
  • V ideálním případě můžete opakovat stejný řádek kódu, který byl použit pro průměr, pro řádek Součet kódu nahrazením

SalesTotal = Application.WorksheetFunction.Sum (.Range („A2: A6“))

.Range („A7“). Hodnota = SalesTotal

S

.Range („A7“). Hodnota = Application.WorksheetFunction.Sum (.Range („A2: A6“))

Byl však zachován, abyste porozuměli různým způsobům kódování stejného úkolu. Podobně můžeme při používání Application.WorksheetFunction používat další funkce. Všechny tyto funkce, které můžeme použít přímo v listu, můžeme použít zde.

To usnadňuje používání funkcí v kódu, abychom mohli vypočítat požadované vzorce, aniž bychom museli vytvářet kód pro vzorec.

Pokud se vám naše blogy líbily, sdílejte je se svými přáteli na Facebooku. A také nás můžete sledovat na Twitteru a Facebooku.
Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit, doplnit nebo inovovat naši práci a zlepšit ji pro vás. Napište nám na e -mailový web