Tento tutoriál vás naučí, ako komunikovať s hodnotami buniek pomocou VBA.
Nastavte hodnotu bunky
Ak chcete nastaviť hodnotu bunky, použite vlastnosť hodnota objektu Rozsah alebo Bunky.
Rozsah. Hodnota a bunky. Hodnota
Vo VBA existujú dva spôsoby odkazovania na bunky (bunky):
- Objekt dosahu - Rozsah („A2“). Hodnota
- Bunky Objekt - Bunky (2,1). Hodnota
Objekt Range vám umožňuje odkazovať na bunku pomocou štandardného zápisu „A1“.
Tým sa nastaví hodnota rozsahu A2 = 1:
1 | Rozsah („A2“). Hodnota = 1 |
Objekt Bunky vám umožňuje odkazovať na bunku podľa čísla riadka a čísla stĺpca.
Nastaví sa hodnota rozsahu A2 = 1:
1 | Bunky (2,1). Hodnota = 1 |
Všimnite si, že najskôr zadáte číslo riadka:
1 | Bunky (riadkový_číslo, stĺpcový_číslo) |
Nastavte hodnoty viacerých buniek naraz
Namiesto odkazovania na jednu bunku môžete odkazovať na rozsah buniek a zmeniť všetky hodnoty buniek naraz:
1 | Rozsah („A2: A5“). Hodnota = 1 |
Nastaviť hodnotu bunky - text
Vo vyššie uvedených príkladoch nastavíme hodnotu bunky na číslo (1). Namiesto toho môžete nastaviť hodnotu bunky na reťazec textu. Vo VBA musí byť všetok text obklopený citátmi:
1 | Rozsah („A2“). Hodnota = „Text“ |
Ak text neobklopíte citátmi, VBA si bude myslieť, že odkazujete na premennú …
Nastavená hodnota bunky - premenná
Môžete tiež nastaviť hodnotu bunky rovnajúcu sa premennej
1234 | Dim strText ako reťazecstrText = "Reťazec textu"Rozsah („A2“). Hodnota = strText |
Získajte hodnotu bunky
Hodnoty buniek môžete získať pomocou rovnakej vlastnosti Value, akú sme použili vyššie.
Získajte hodnotu ActiveCell
Ak chcete získať hodnotu ActiveCell a zobraziť ju v okne so správou:
1 | MsgBox ActiveCell.Value |
Priradiť hodnotu bunky premennej
Ak chcete získať hodnotu bunky a priradiť ju k premennej:
123 | Dim var ako Variantvar = rozsah ("A1"). Hodnota |
Tu sme použili premennú typu Variant. Premenné variantov môžu akceptovať akýkoľvek typ hodnôt. Namiesto toho môžete použiť typ premennej String:
123 | Dim var ako reťazecvar = rozsah ("A1"). Hodnota |
Typ premennej reťazca bude akceptovať číselné hodnoty, ale uloží čísla ako text.
Ak viete, že hodnota vašej bunky bude číselná, môžete použiť typ dvojitej premennej (do dvojitých premenných je možné uložiť desatinné hodnoty):
123 | Dim var ako Doublevar = rozsah ("A1"). Hodnota |
Ak sa však pokúsite uložiť hodnotu bunky obsahujúcej text do dvojitej premennej, zobrazí sa chyba nesúladu typu:
Ďalšie príklady hodnoty bunky
Skopírujte hodnotu bunky
Je ľahké nastaviť hodnotu bunky, ktorá sa rovná inej hodnote bunky (alebo „skopírovať“ hodnotu bunky):
1 | Rozsah („A1“). Hodnota = rozsah („B1“). Hodnota |
Môžete to dokonca urobiť s rozsahmi buniek (rozsahy musia mať rovnakú veľkosť):
1 | Rozsah („A1: A5“). Hodnota = rozsah („B1: B5“). Hodnota |
Porovnajte hodnoty buniek
Hodnoty buniek môžete porovnávať pomocou štandardných operátorov porovnávania.
Otestujte, či sú hodnoty buniek rovnaké:
1 | Rozsah MsgBox ("A1"). Hodnota = rozsah ("B1"). Hodnota |
Ak sú hodnoty buniek rovnaké, vráti hodnotu TRUE. V opačnom prípade NEPRAVDA.
Môžete tiež vytvoriť príkaz If na porovnanie hodnôt buniek:
12345678910111213 | Ak je rozsah („A1“). Hodnota> Rozsah („B1“). Hodnota potomRozsah („C1“). Hodnota = „Väčší ako“Iný rozsah („A1“). Hodnota = rozsah („B1“). Hodnota potomRozsah („C1“). Hodnota = „Rovnaké“InakRozsah („C1“). Hodnota = „Menej ako“Koniec Ak |
Text môžete porovnávať rovnakým spôsobom (Nezabudnite, že VBA rozlišuje veľké a malé písmena).