Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-listy-bunky » vysledek-funkce-do-promenne-excel-vba

Výsledek funkce do proměnné - VBA Excel

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Jak provádět výpočty funkcí pomocí VBA, přímo na pozadí VBA.

Úvodem

MS Excel 2010 - Logo

Obdržel jsem dotaz: "Jak zapsat výsledek běžné funkce do proměnné, t.j. aniž bych ji napřed zapsal do buňky a pak četl z buňky do proměnné. "

Jak elegantně tento výpočet provést přímo na pozadí VBA a do příslušné buňky vložit jen výsledek? Toto se dozvíte v tomto článku.

Druhá možnost je provést výpočet vložení funkce (vzorec) do příslušné buňky, jak jsem popsal v článku Zapiš vzorec (funkci) do buňky a poté přečíst výslednou hodnotu jak je sepsáno v článku: Přečti údaj z buňky - Excel VBA.


Jak na to?

Využít Application.WorksheetFunction

SUBTOTAL

Jak na výpočet funkce SUBTOTAL.

MojeHodnota = Application.WorksheetFunction.Subtotal(9, Range("G:G"))

SUMA

Jak na výpočet funkce SUMA.

Posledni = Cells(Rows.Count, "A").End(xlUp).Row MojeSuma = Application.WorksheetFunction.Sum(Range("A1:A" & Posledni)) Dim vysledek As Variant vysledek = Application.WorksheetFunction.VLookup(12,Range("A1:E1000"),3,FALSE)

Kontrola chyb

Jak kontrolovat případné chybné výpočty funkce:

(1)

Dim vysledek As Variant On Error Resume Next Err.Clear vysledek = Application.WorksheetFunction.VLookup(12,Range("A1:E1000"),3,FALSE) If Err.Number = 0 Then ' Hodnota je OK, bude pokračovat Else ' Chybová hodnota místo pro další kód End If

(2)

Dim vysledek As Variant vysledek = Application.WorksheetFunction.VLookup(12,Range("A1:E1000"),3,FALSE) If IsError(Res) = False Then ' Hodnota je OK, bude pokračovat Else ' Chybová hodnota místo pro další kód End If

Výpis hodnoty

vysledek = Application.WorksheetFunction.VLookup(12,Range("A1:E1000"),3,FALSE) MsgBox (vysledek)

nebo

vysledek = Application.WorksheetFunction.VLookup(12,Range("A1:E1000"),3,FALSE) Debug.Print vysledek

Závěrem

Využíváte WorksheetFunction? Máte nějaké zajímavé kódy? Můžete doplnit do komentářů.

Článek byl aktualizován: 19.09.2020 11:06

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Milan

Přidáno: 20.11.13 13:15

ahoj, zkusil jsem do VBA vložit funkci zjištění aktuálního data, ale hlásí chybu. kde může být problém ? hodnota1 = Application.WorksheetFunction.today()

Pavel Lasák

Přidáno: 20.11.13 17:21

To Mila: Tohle mi funguje DnesJe = Date MsgBox DnesJe

David

Přidáno: 25.06.14 16:43

Ahoj, snazim se prijit na to, jak zapsat promennou "a" do vytvoreni Pivotky, ale v tomto kodu mi to hlasi chybu, kdyz odstranim pote uvozovky mezi promennou tak uz to neni promenna a nezna cislo. ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Total!R1C1:R" & a & "C11", Version:=xlPivotTableVersion15).CreatePivotTable _ TableDestination:="Sheet1!R3C1", TableName:="PivotTable1", DefaultVersion _ :=xlPivotTableVersion15

Jojo

Přidáno: 23.07.14 08:18

To David: Nie je chyba v niečom inom napr. vo verzii? --> http://stackoverflow.com/questions/15301158/issue-with-vba-creating-a-pivot-table-is-this-an-excel-version-issue






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |