Hodnota VBA
Cesta VBA začíná vědomím, jak jsou hodnoty uloženy v buňkách. Znalost funkce VALUE v rámci VBA je proto důležitější. Po prostudování vlastnosti VBA VALUE budete vědět, jak se hodnoty ukládají pod VBA. Tento článek vysvětluje všechny typy funkcí HODNOTA VBA, jako je to, jak se hodnota uloží v buňkách, horká pro nastavení hodnoty, jak vložit hodnotu a mnoho dalších.
Jak používat hodnotovou funkci Excel VBA?
Naučíme se používat funkci VBA Value s několika příklady v Excelu.
Tuto šablonu VBA Value Excel si můžete stáhnout zde - VBA Value Excel TemplatePříklad č. 1 - Nastavte hodnotu buňky pomocí funkce Range.Value
Nastavení hodnoty buňky / s pomocí rozsahu. Hodnotová funkce zhruba sestává ze dvou důležitých kroků:
- Nastavení rozsahu, ve kterém má být hodnota uložena.
- Přiřazení hodnoty sadě rozsahů.
Podle následujících kroků nastavte hodnotu v aplikaci Excel VBA:
Krok 1: Vložte nový modul do editoru jazyka (VBE).
Krok 2: Definujte novou dílčí proceduru pod vloženým modulem, aby do ní bylo možné uložit makro.
Kód:
Sub VBA_Value_Ex1 () End Sub
Krok 3: Definujte novou proměnnou jako rozsah, který lze použít k definování rozsahu, do kterého chcete hodnotu uložit.
Kód:
Sub VBA_Value_Ex1 () Dim setValue_Var jako Range End Sub
Krok 4: Pomocí funkce VBA RANGE přiřaďte buňky v rozsahu k proměnné definované pomocí operátora přiřazení.
Kód:
Sub VBA_Value_Ex1 () Dim setValue_Var As Range Set setValue_Var = ThisWorkbook.Worksheets ("Setting_Cell_Value_1"). Range ("A1") End Sub
Krok 5: Nyní použijte vlastnost Range.Value, abyste mohli přiřadit hodnotu definovanému rozsahu. Zadejte název proměnné „setValue_Var“, pod kterým je rozsah definován.
Sub VBA_Value_Ex1 () Dim setValue_Var As Range Set setValue_Var = ThisWorkbook.Worksheets ("Setting_Cell_Value_1"). Range ("A1") setValue_Var End Sub
Krok 6: Za proměnnou vložte tečku (.), Abyste mohli vybrat seznam funkcí IntelliSense dostupných pro tuto definovanou rozsahovou proměnnou.
Kód:
Sub VBA_Value_Ex1 () Dim setValue_Var As Range Set setValue_Var = ThisWorkbook.Worksheets ("Setting_Cell_Value_1"). Range ("A1") setValue_Var. End Sub
Krok 7: Táhněte seznamem dolů a vyberte funkci „Hodnota“ pro uložení hodnoty do této proměnné rozsahu.
Kód:
Sub VBA_Value_Ex1 () Dim setValue_Var As Range Set setValue_Var = ThisWorkbook.Worksheets ("Setting_Cell_Value_1"). Range ("A1") setValue_Var.Value End Sub Sub
Krok 8: Přiřaďte „Vítejte ve světě VBA!“ Jako hodnotu do tohoto rozsahu pomocí operátora přiřazení.
Kód:
Sub VBA_Value_Ex1 () Dim setValue_Var As Range Set setValue_Var = ThisWorkbook.Worksheets ("Setting_Cell_Value_1"). Range ("A1") setValue_Var.Value = "Vítejte ve světě VBA!" End Sub
Krok 9: Jsme hotovi s kódovací částí. Spusťte tento kód stisknutím klávesy F5 nebo Run ve VBE a podívejte se na výstup.
Tuto hodnotu můžete také přiřadit řadě buněk. Jediné, co musíte udělat, je při nastavování rozsahu výstupu dát jednorozměrné pole namísto odkazu na jednu buňku.
Krok 10: Ve stejném kódu výše změňte rozsah z “A1” na “A1: A5”.
Kód:
Sub VBA_Value_Ex1 () Dim setValue_Var As Range Set setValue_Var = ThisWorkbook.Worksheets ("Setting_Cell_Value_1"). Range ("A1: A5") setValue_Var.Value = "Vítejte ve světě VBA!" End Sub
Krok 11: Stiskněte klávesu F5 nebo Run a podívejte se na výstup.
Příklad č. 2 - Nastavte hodnotu buňky pomocí vlastnosti buněk VBA
Toto je další metoda pro nastavení hodnoty buňky pod VBA. Na rozdíl od funkce RANGE je buňky nepotřebují. Operátor hodnoty, aby mohl nastavit hodnotu pro konkrétní buňku / buňky.
Podle níže uvedených kroků nastavte hodnotu buňky v aplikaci Excel VBA:
Krok 1: Vložte nový modul do VBE, kde můžete začít psát svůj nový kód.
Krok 2: Přidejte nový dílčí postup pod vložený modul, do kterého můžete uložit svůj kód makra.
Kód:
Sub VBA_Value_Ex2 () End Sub
Krok 3: Začněte psát thisWorkbook.Worksheet pro přístup k listu s názvem „Setting_Cell_Value_2“.
Kód:
Sub VBA_Value_Ex2 () ThisWorkbook.worksheet End Sub
Krok 4: V dvojitých uvozovkách uveďte název listu v závorkách.
Kód:
Sub VBA_Value_Ex2 () ThisWorkbook.Worksheets ("Setting_Cell_Value_2") End Sub
Krok 5 : Pomocí vlastnosti .Cells nastavte rozsah buněk z daného listu Excel.
Kód:
Sub VBA_Value_Ex2 () ThisWorkbook.Worksheets ("Setting_Cell_Value_2"). Buňky (1, 1) End Sub
První argument vlastnosti Cells představuje řádky a druhý argument představuje sloupec. Proto buňky (1, 1) znamenají buňku spojenou s prvním řádkem a prvním sloupcem listu „Setting_Cell_Value_2“.
Krok 6: Nyní s pomocí operátora přiřazení přiřaďte této sadě buněk hodnotu.
Kód:
Sub VBA_Value_Ex2 () ThisWorkbook.Worksheets ("Setting_Cell_Value_2"). Buňky (1, 1) = "VBA je flexibilní." End Sub
Podívejte se, že nepotřebujeme. Hodnotovou funkci, kterou musíme použít při nastavování hodnoty pomocí funkce Range. Metoda Cells nemá takové možnosti IntelliSense.
Krok 7: Stisknutím klávesy F5 nebo Run spusťte tento kód a podívejte se na výstup. Uvidíte výstup, jak je uvedeno na obrázku níže.
Příklad č. 3 - Získejte hodnotu buňky ve VBA
Až dosud jsme ve dvou příkladech viděli, jak nastavit hodnotu pro buňku nebo oblast buněk. Nyní předpokládejme, že případ je přesně opačný, musíme získat hodnotu přiřazenou konkrétní buňce excel listu. Jak to můžeme získat? Podívejme se na průvodce krok za krokem.
Předpokládejme, že jsem přiřadil hodnotu, jak je ukázáno na obrázku níže pod první buňkou sloupce A v listu „Getting_Cell_Value“.
Chcete-li získat hodnotu buňky v aplikaci Excel VBA, postupujte podle následujících kroků:
Krok 1: Vložte nový modul pod VBE.
Krok 2: Přidejte dílčí postup, aby bylo možné makro uložit jako kód.
Kód:
Sub VBA_Value_Ex3 () End Sub
Krok 3: Definujte novou proměnnou nazvanou Get_Value jako variantu pomocí funkce VBA Dim.
Kód:
Sub VBA_Value_Ex3 () Dim Get_Value jako Konec varianty Sub
Nyní musíte přiřadit hodnotu přítomnou v buňce A1 proměnné definované výše.
Krok 4: Zadejte „Get_Value = ThisWorkbook.Worksheets“. To umožní kompilátoru VBA přístup k listu Excel, kde je uložena vaše hodnota.
Kód:
Sub VBA_Value_Ex3 () Dim Get_Value jako varianta Get_Value = ThisWorkbook.Worksheet End Sub
Krok 5: Uveďte název listu v závorkách s uvozovkami, ve kterých je uložena hodnota.
Kód:
Sub VBA_Value_Ex3 () Dim Get_Value As Variant Get_Value = ThisWorkbook.Worksheets ("Getting_Cell_Value") End Sub
Krok 6: Nyní použijte metodu dot (.) Range k poskytnutí přesné buňky, kde je hodnota uložena v listu nazvaném „Getting_Cell_Value“.
Kód:
Sub VBA_Value_Ex3 () Dim Get_Value As Variant Get_Value = ThisWorkbook.Worksheets ("Getting_Cell_Value"). Range ("A1") End Sub
Krok 7: Nakonec použijte metodu dot (.) Value tak, aby kompilátor měl přístup ke skutečné hodnotě pod buňkou A1.
Kód:
Sub VBA_Value_Ex3 () Dim Get_Value As Variant Get_Value = ThisWorkbook.Worksheets ("Getting_Cell_Value"). Range ("A1"). Hodnota End Sub
Krok 8: Jak už jsme mluvili, musíme získat hodnotu uloženou v buňce A1. K tomu použijte MsgBox k zobrazení hodnoty proměnné Get_Value (která již přistoupila k hodnotě zadané v buňce A1).
Kód:
Sub VBA_Value_Ex3 () Dim Get_Value As Variant Get_Value = ThisWorkbook.Worksheets ("Getting_Cell_Value"). Range ("A1"). Hodnota MsgBox Get_Value End Sub Sub
Krok 9: Stisknutím klávesy F5 nebo Spustit spustíte tento kód. V poli zprávy dostanete hodnotu přítomnou v buňce A1.
Vidíte, to byla hodnota, kterou jsme uvedli v buňce A1 listu „Getting_Cell_Value“. Že jo?
Příklad č. 4 - Můžeme získat více hodnot buněk najednou?
Předpokládejme, že mám uložené hodnoty ve třech různých buňkách A1, A2, A3, jak ukazuje obrázek níže:
Jen se nenechte zmást, pokud vidíte text šířený podél sloupců A až E. je to pouze viditelné rozvržení (protože jsem sloučil buňky) a skutečná hodnota je uložena pouze pod buňkou A1, A2, A3.
Hodnotu Excel VBA použijte takto:
Krok 1: Definujte proměnnou jako variantu v rámci nového dílčího postupu v modulu VBA.
Kód: Sub VBA_Value_Ex4 () Dim Get_Value_2 jako varianta End Sub
Krok 2: Pomocí metody Range.Value načtěte hodnotu buněk A1: A3 a přiřaďte nové proměnné definované v předchozím kroku.
Kód:
Sub VBA_Value_Ex4 () Dim Get_Value_2 jako varianta Get_Value_2 = ThisWorkbook.Worksheets ("Getting_Cell_Value_2"). Range ("A1: A3"). Hodnota End Sub
Krok 3: Nakonec pomocí funkce MsgBox zobrazte hodnoty uložené v buňce A1: A3.
Kód:
Sub VBA_Value_Ex4 () Dim Get_Value_2 jako varianta Get_Value_2 = ThisWorkbook.Worksheets ("Getting_Cell_Value_2"). Range ("A1: A3"). Hodnota MsgBox Get_Value_2 End Sub
Krok 4: Stiskněte klávesu F5 nebo Run a podívejte se na výstup tohoto kódu.
Obdržíte run-time error'13 ': Type Neshoda. Důvodem získání této chyby je, že definujeme jednu proměnnou a přiřazujeme jí hodnoty jednorozměrného pole (se třemi řádky). Což logicky není možné.
Toto je z tohoto článku. Pojďme zabalit věci s některými body, které je třeba mít na paměti.
Co si pamatovat
Při použití metody VBA CELLS nelze nastavit více hodnot buněk, protože řádky a sloupce bere jako argumenty. V něm můžete zadat pouze číslo řádku a číslo sloupce.
Hodnoty uložené ve více buňkách také nemůžete získat v jediném okně zprávy. Pokud musíte načíst rozsah hodnot, musíte pro každou hodnotu napsat samostatné argumenty get.
Doporučené články
Toto byl průvodce hodnotou VBA. Zde jsme diskutovali o tom, jak používat Excel VBA Value Function spolu s praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -
- Kompletní průvodce VBA při chybě
- Jak používat formát čísla VBA?
- Funkce VBA VLOOKUP s příklady
- Vytvoření funkce VBA v Excelu
- Jak používat funkci VBA Val?