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

Nový videokurz na Seduo: Excel pro začátečníky

     

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

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


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: 01.11.2014 14:18

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

Pavel Lasák - autor webu

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2006. Své vědomosti a zkušenosti dávám k dispozici na různých školeních a konzultacích, ale také na tomto webu. K dispozici na tomto webu je mnoho návodu, tipů a triků včetně desítek různých šablon.

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

Doporučte tento článek přátelům

Pokud vám článek pomohl, případně si myslíte, že může pomoci i někomu dalšímu, budu rád když jej sdílením doporučíte přátelům - děkuji:



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


Přidání nového komentáře

Poznámka: Z časových důvodu není v mých sílách zodpovědět všechny dotazy. Děkuji za pochopení.




(vlož číslo padesátpět)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky, kromě <code> a </code> (pro vkládání VBA kódu). Děkuji za pochopení.
Děkuji, za Vaše komentáře.

Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu. V komentářích si tykáme. ;-)






Sdílejte

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

Nové články


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

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 - 2016 | 7030

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.