VBA XLUP | Jak používat VBA XLUP v aplikaci Excel? (s příklady)
Excel VBA XLUP
Při psaní kódu VBA je třeba mít na paměti jednu věc, co děláte s běžným listem, a to samé můžete replikovat i ve VBA. Jedno takové klíčové slovo v kódování VBA je „XLUP“, v tomto článku vám ukážeme, jaké je toto klíčové slovo v kódování VBA a jak ho použít v kódování.
Jak používat VBA XLUP v kódování?
Následují příklady aplikace Excel VBA XLUP.
Tuto šablonu Excel VBA XLUP Excel si můžete stáhnout zde - Šablona Excel VBA XLUPPříklad č. 1 - Přesuňte buňky do odstraněné polohy buněk
Podívejte se například na scénář níže uvedených dat, kde je třeba odstranit data těchto barevných buněk a více dat níže uvedených řádků na výše uvedená data.
Jedním ze způsobů, jak to v listu odstranit, je vybrat buňky, ve kterých můžeme jednoduše odstranit celý řádek. Ale tady jsou situace trochu složité, protože mám barevné buňky v tabulce 1, když odstraníme celý řádek, dokonce se smažou i řádky tabulky 2, ale nechceme, aby se to stalo místo, musíme pouze odstranit barevné řádky a pod buňkami by se měly pohybovat nahoru pozici odstraněných buněk.
Nejprve vyberte barevné buňky a stisknutím Ctrl + Symbol mínus (-) otevřete možnost „Odstranit“.
Klávesová zkratka pro otevření možnosti „Odstranit“
V okně možností „smazat“ máme čtyři možnosti, můžeme si vybrat akci podle našeho požadavku. Protože potřebujeme přesunout naše buňky nahoru pro tyto odstraněné buňky, vyberte „Posunout buňku nahoru“.
Budeme mít nezměněné řádky tabulky 2.
Tato akce ve VBA vyžaduje použití vlastnosti „XLUP“ k provedení podobné sady akcí ve VBA. Nyní přejděte do okna editoru VBA a spusťte název makra.
Kód:
Sub XLUP_Example () End Sub
Nejprve dodejte buňku RANGE, která má být zahrnuta do této operace. V této akci jsou první buňky, které mají být odstraněny a přesunuty nahoru, buňky „A5: B5“.
Kód:
Sub XLUP_Example () Range ("A5: B5") End Sub
Pro tento rozsah buněk vyberte metodu „Odstranit“.
Kód:
Sub XLUP_Example () Range ("A5: B5"). Odstranit End Sub
Jak vidíte pro metodu „Odstranit“, máme jeden volitelný argument jako [Shift], pro tento argument musíme zadat argument jako „XLUP“.
Kód:
Sub XLUP_Example () Range ("A5: B5"). Smazat shift: = xlUp End Sub
Nyní můžete tento kód spustit ručně nebo pomocí klávesové zkratky aplikace Excel F5, abyste viděli výsledek.
Jak vidíte v tabulce 1, máme řádek číslo 6 přesunut až do 5. řádku a na druhé straně tabulka, 2 řádky (barevné) jsou nezměněny, takže pomocí možnosti „VBA XLUP“ můžeme provést tuto operaci.
Příklad č. 2 - Najděte poslední použitý řádek pomocí XLUP
Představte si situaci, že jste v buňce A20 (podívejte se na obrázek níže) a vaše poslední použitá buňka je A14.
Nyní, pokud chcete vybrat poslední použitou buňku (A14). jak to uděláte pomocí klávesové zkratky ???
Pomocí klávesy Ctrl + šipka nahoru se přesuneme do poslední použité buňky z aktuální pozice.
Klávesová zkratka pro přesun do poslední použité buňky
Takže z aktuální buňky vybrala Ctrl + šipka nahoru poslední použitou buňku. Podobně v kódování VBA používáme END (XLUP) k provedení stejného.
Nyní se vraťte zpět do okna kódování VBA.
V tomto okně provedeme úkol najít poslední použitý řádek v listu. V okně VBA vytvořte nový podproces.
Kód:
Sub XLUP_Example1 () End Sub
Pro uložení naposledy použitého čísla řádku. definujte proměnnou jako datový typ VBA LONG.
Kód:
Sub XLUP_Example1 () Dim Last_Row_Number jako Long End Sub
Nyní této proměnné přiřadíme poslední použité číslo řádku.
Kód:
Sub XLUP_Example1 () Dim Last_Row_Number Dim Long Last_Row_Number = End Sub
Nyní použijte RANGE objekt a otevřete tento objekt.
Kód:
Sub XLUP_Example1 () Dim Last_Row_Number As Long Last_Row_Number = Range (End Sub
Nyní uveďte aktivní buňku (A20) pro objekt RANGE .
Kód:
Sub XLUP_Example1 () Dim Last_Row_Number Dim Long Range ("A14"). Vyberte Last_Row_Number = Range ("A20") End Sub
Nyní otevřete END vlastnost pro dodanou buňku rozsahu.
Kód:
Sub XLUP_Example1 () Dim Last_Row_Number Dim Long Range ("A14"). Vyberte Last_Row_Number = Range ("A20"). End (End Sub
Jak vidíte výše, musíme vybrat možnosti kláves jako „xlDown“, „xlToLeft“, „xlToRight“, „xlUp“. Protože se pohybujeme nahoru z buňky A14, vyberte možnost „VBA XLUP“.
Kód:
Sub XLUP_Example1 () Dim Last_Row_Number Dim Long Range ("A14"). Vyberte Last_Row_Number = Range ("A20"). End (xlUp) End Sub
Po přesunutí z buňky A14 nahoru musíme zmínit, co musíme udělat, protože potřebujeme číslo posledního použitého řádku, použiji vlastnost ROW.
Kód:
Sub XLUP_Example1 () Dim Last_Row_Number Dim Long Range ("A14"). Vyberte Last_Row_Number = Range ("A20"). End (xlUp) .Row End Sub
Nyní pro okno se zprávou přiřaďte hodnotu proměnné „Last_Row_Number“ .
Kód:
Sub XLUP_Example1 () Dim Last_Row_Number Dim Long Range ("A14"). Vyberte Last_Row_Number = Range ("A20"). End (xlUp) .Row MsgBox Last_Row_Number End Sub
Nyní můžete tento kód spustit ručně nebo pomocí klávesové zkratky F5, abyste viděli výsledek.
Okno se zprávou zobrazující číslo posledního použitého řádku jako 14, takže naše poslední použité číslo řádku je buňka A14.
V tomto případě, protože data jsou velmi malá, jsme začali z buňky A20, ale když jsou data velká, nemůžeme říci, kterou buňku je třeba vzít v úvahu jako první, v takových případech musíme použít jinou techniku.
Musíme použít vlastnost CELLS, níže je příklad stejné.
Kód:
Sub XLUP_Example2 () Dim Last_Row_Number jako dlouhý Last_Row_Number = buňky (Rows.Count, 1). End (xlUp) .Row MsgBox Last_Row_Number End Sub
Nyní můžete tento kód spustit ručně nebo pomocí klávesové zkratky F5, abyste viděli výsledek.
Místo objektu RANGE jsem použil vlastnost CELLS. Dovolte mi, abych vám to podrobně vysvětlil.
ROW.COUNT to spočítá, kolik řádků je ve sloupci 1. Co to udělá, je to, že vezme v úvahu poslední buňku v listu namísto náhodné adresy buňky, ve výše uvedeném případě jsme jako náhodnou buňku použili A14 adresa.
Co je třeba pamatovat na VBA XLUP
- XLUP je slovo používané v kódu VBA k replikaci akce klávesy „Šipka nahoru“ v aplikaci Excel.
- VBA XLUP se používá k přechodu z aktivních buněk do výše uvedené buňky nebo do naposledy použité buňky.
- XLUP se obecně používá společně s vlastností END ve VBA.