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