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.
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.
Využít Application.WorksheetFunction
Jak na výpočet funkce SUBTOTAL.
MojeHodnota = Application.WorksheetFunction.Subtotal(9, Range("G:G"))
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)
Jak kontrolovat případné chybné výpočty funkce:
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
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
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
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
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.
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ů.
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()
Přidáno: 20.11.13 17:21
To Mila: Tohle mi funguje
DnesJe = Date
MsgBox DnesJe
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
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
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
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 |