Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Môžete skryť riadky v Exceli pomocou príkazu vzorca alebo podmienky?

Áno, môžete skryť riadky v Exceli pomocou vzorca alebo podmieneného príkazu, ale nie * priamo * v bunkovom vzorec. Namiesto toho musíte použiť podmienené formátovanie s vlastným vzorec v spojení s makro VBA . Tu je, ako to urobiť:

1. Podmienené formátovanie:

* Účel: Označte riadky, ktoré spĺňajú vaše kritériá (stav). Namiesto toho, aby sme sa priamo skrývali, zmeníme písmo riadku a vyplníme farbu, aby sme boli neviditeľné.

* Kroky:

1. Vyberte rozsah údajov: Zvýraznite celý rad riadkov a stĺpcov, na ktoré chcete uplatniť úkryt (napr. A1:Z100` alebo akokoľvek veľké údaje sú). Je dôležité, že * prvý * riadok vášho výberu sa použije ako referencia pre váš vzorec.

2. Prejdite na podmienené formátovanie: Na karte „Domov“ kliknite na položku „Podmienené formátovanie“> „Nové pravidlo ...“

3. Vyberte „Použite vzor na určenie, ktoré bunky do formátu“: Vyberte tento typ pravidla.

4. Zadajte svoj vzorec: Do poľa Formula zadajte vzorec, ktorý sa vráti „true`, keď chcete skryť riadok a„ false “inak. * Dôležité:* Primerane používajte relatívne referencie (`$ columnNamerownumber`) alebo zmiešané referencie ($ columnnameROWNumber`), v závislosti od toho, čo chcete otestovať.

* Príklad 1 (skryť riadky, kde hodnota v stĺpci A je „kolek“):

`` `Excel

=$ A1 ="skryť"

`` `

Tento vzorec skontroluje, či sa hodnota v stĺpci A prvého riadku * vášho zvoleného rozsahu rovná „skryť“. Potom použije formátovanie do tohto riadku. Pretože ste vybrali celý rozsah, vzorec sa automaticky upraví pre každý riadok.

* Príklad 2 (skryť riadky, kde hodnota v stĺpci B je menšia ako 0):

`` `Excel

=$ B1 <0

`` `

Toto skryje riadky, kde hodnota v stĺpci B je záporná.

* Príklad 3 (skryť riadky, kde hodnota v stĺpci C je prázdna):

`` `Excel

=Isblank ($ C1)

`` `

5. Nastavte formát (na „skryť“): Kliknite na tlačidlo „Formát ...“.

* font: Zmeňte farbu písma tak, aby zodpovedala farbe pozadia vašich buniek. Zvyčajne je to biela (alebo žiadna výplň).

* vyplňte: Zmeňte farbu výplne tak, aby zodpovedala farbe pozadia vašich buniek. Opäť zvyčajne biela (alebo žiadna výplň).

* Kliknutím na tlačidlo „OK“ zatvoríte dialógové okno formátu a potom „OK“ znova vytvorte pravidlo podmienečného formátovania.

2. VBA makro (na nastavenie výšky riadku):

* Účel: Nastavenie výšky riadku na 0 pre riadky, ktoré zodpovedajú formátovaniu. Toto je posledný krok pri vizuálnom skrytí riadkov.

* Kroky:

1. Otvorte editor VBA: Stlačením klávesu „Alt + F11` otvoríte editor Visual Basic.

2. Vložte modul: V editore VBA prejdite na „Vložte“> „modul“.

3. Vložte nasledujúci kód: Vložte tento kód VBA do modulu:

`` `VBA

Sub HiderowsBasedOnFormat ()

Dim rng ako rozsah, bunka ako rozsah

Dim WS ako pracovný hárok

Dim Consformat ako formatCondition

„Zmeňte“ list1 na názov vášho hárku

Set ws =thorkbook.Sheets ("Sheet1")

„Zmeňte A1:Z100 na skutočný rozsah, v ktorom sa uplatňuje podmienené formátovanie

SET RNG =WS.RANGE ("A1:Z100")

'Slučka cez každú bunku v rozsahu

Pre každú bunku v rng.Rows

„Predpokladajme, že sa spočiatku neskrývajte

bunka.hidden =false

'Slučka cez všetky podmienené formáty

Pre každý konformát v bunke.FormatConditions

Ak condformat.type =xlexpresia potom

„Vyhodnoťte vzorec, ak je to pravda, potom skryť

Ak ws.evaluate (condformat.formula1) potom

bunka.hidden =true

Opustiť

Skončiť

Skončiť

Ďalší konformát

Ďalšia bunka

Koncový

Sub UnhideallRows ()

Dim WS ako pracovný hárok

„Zmeňte“ list1 na názov vášho hárku

Set ws =thorkbook.Sheets ("Sheet1")

ws.rows.hidden =false

Koncový

`` `

4. Prispôsobte kód:

in :Zmeňte `" hárok1 "` na skutočný názov pracovného hárka, kde sú vaše údaje.

* `set rng =ws.range (" a1:z100 ")` :Zmena „A1:Z100“ `do rovnakého rozsahu údajov, aký ste použili pri vytváraní pravidla podmieneného formátovania.

5. Spustite makro: Vráťte sa späť do editora VBA (ak ho zatvoríte) a stlačením klávesu `F5` spustíte makro HIDEROWSBASEONFORMAT`. Alternatívne, od programu Excel, prejdite na kartu „Developer“ (ak ju nevidíte, budete ju musieť povoliť v možnostiach programu Excel)> „Makrá“, vyberte „HiderowsBasedOnFormat` a kliknite na„ Spustiť “.

6. (voliteľné) Pridajte tlačidlo: Môžete vložiť tlačidlo do svojho pracovného hárka (vložiť -> Shapes -> Button) a priradiť k nemu makro „HiderowsBasedOnFormat` makro. Toto poskytuje užívateľsky prívetivý spôsob, ako znova pokryť riadky vždy, keď sa údaje zmenia. Môžete tiež pridať tlačidlo pre `Unhideallrows`.

Vysvetlenie:

* Podmienené formátovanie: To znamená riadky, ktoré sa chceme skryť.

* vba makro: Tento kód iteruje cez riadky a skontroluje, či podmienečné formátovanie platí pre každý riadok. Ak sa tak stane, nastaví `Rowheight` na 0, čím je riadok efektívne neviditeľný. Používame vzorec podmienečného formátovania ako súčasť makra, takže nie je založený iba na formáte, ktorý sa môže zmeniť.

Dôležité úvahy:

* Výkon: Ak máte veľmi veľký súbor údajov (desiatky tisíc riadkov), tento prístup * môže byť pomalý, pretože sa opakuje v každom riadku. Ak je výkon kritický, môže existovať zložitejšie, ale rýchlejšie riešenia VBA.

* Prepočítavanie: Keď sa vaše údaje zmenia (a pravidlá podmienečných formátovacích pravidiel prepočítať), ak sa podmienky zmenia, budete musieť znova spustiť makro, aby ste sa riadili riadky. Môžete to automatizovať pomocou obsluhy udalostí vo VBA (napr. Worksheet_change`, aby ste spustili makro vždy, keď sa zmení bunka na hárku). Buďte však opatrní, pretože spustenie makra pri každej zmene môže tiež spomaliť veci.

Príklad s udalosťou `worksheet_change` (automatické skrytie):

Ak chcete urobiť automatický úkryt vždy, keď sa údaje zmenia, môžete upraviť kód VBA takto. Namiesto umiestnenia kódu do modulu ho vložte do okna * Worksheet * Code:

1. kliknite pravým tlačidlom myši na kartu list (napr. „Sheet1“) v programe Excel a vyberte „Zobraziť kód“. Tým sa otvorí editor VBA priamo do modulu kódu pracovného hárka.

2. Vložte nasledujúci kód do okna kódu pracovného hárka:

`` `VBA

Private Sub Worksheet_change (ByVal Target As Range)

„Zavolajte makro HIDEROWSBasedOnFormat vždy, keď sa hárok zmení.

HerowsBasedOnFormat

Koncový

Sub HiderowsBasedOnFormat ()

Dim rng ako rozsah, bunka ako rozsah

Dim WS ako pracovný hárok

Dim Consformat ako formatCondition

„Zmeňte“ list1 na názov vášho hárku

Set ws =thorkbook.Sheets ("Sheet1")

„Zmeňte A1:Z100 na skutočný rozsah, v ktorom sa uplatňuje podmienené formátovanie

SET RNG =WS.RANGE ("A1:Z100")

'Slučka cez každú bunku v rozsahu

Pre každú bunku v rng.Rows

„Predpokladajme, že sa spočiatku neskrývajte

bunka.hidden =false

'Slučka cez všetky podmienené formáty

Pre každý konformát v bunke.FormatConditions

Ak condformat.type =xlexpresia potom

„Vyhodnoťte vzorec, ak je to pravda, potom skryť

Ak ws.evaluate (condformat.formula1) potom

bunka.hidden =true

Opustiť

Skončiť

Skončiť

Ďalší konformát

Ďalšia bunka

Koncový

Sub UnhideallRows ()

Dim WS ako pracovný hárok

„Zmeňte“ list1 na názov vášho hárku

Set ws =thorkbook.Sheets ("Sheet1")

ws.rows.hidden =false

Koncový

`` `

* Dôležité: Nahraďte `" Sheet1 "` a `" A1:Z100 "` s skutočným názvom hárku a rozsahom údajov, ako predtým.

Teraz, kedykoľvek zmeníte hodnotu na hárku, makro „HiderowsBasedOnFormat` makro sa automaticky spustí, pričom pokrýva všetky riadky, ktoré spĺňajú kritériá podmieneného formátovania.

Nezabudnite uložiť súbor Excel ako makro-podporovaný zošit (.xlsm) na zachovanie kódu VBA.

Tento prístup poskytuje flexibilný spôsob, ako dynamicky „skryť“ riadky v Exceli na základe vzorca, aj keď vyžaduje použitie podmieneného formátovania a VBA. Vyberte metódu, ktorá najlepšie vyhovuje vašim potrebám a úrovni pohodlia s VBA. Čím jednoduchšie makro aktivované tlačidlom je často dobrým východiskovým bodom.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené