Přejít k hlavnímu obsahu

Jak změnit barvu textového pole na základě hodnoty v aplikaci Excel?

V aplikaci Excel můžeme použít funkci podmíněného formátování ke změně barvy pozadí na základě hodnoty buňky, ale v tomto článku budu mluvit o tom, jak změnit barvu textového pole na základě hodnoty buňky nebo hodnoty v textovém poli.

Změňte barvu textového pole na základě hodnoty buňky pomocí kódu VBA

Změňte barvu textového pole na základě hodnoty v textovém poli pomocí kódu VBA


šipka modrá pravá bublina Změňte barvu textového pole na základě hodnoty buňky pomocí kódu VBA

Řekněme, že pokud je hodnota buňky v A1 větší než hodnota buňky v B1, chci, aby bylo textové pole vyplněno červenou barvou, naopak, textové pole by mělo být vyplněno žlutou barvou. Dosáhněte této úlohy pomocí následujících kroků:

1. Vložte textové pole kliknutím Vývojka > Vložit > Textové pole (ovládací prvek ActiveX)a potom nakreslete textové pole, viz screenshot:

barva textového pole doc na základě hodnoty 1

2. Poté klikněte pravým tlačítkem na textové pole a vyberte Zobrazit kód z kontextové nabídky otevřete Microsoft Visual Basic pro aplikace okno a poté do prázdného modulu nahraďte původní kód následujícím kódem VBA:

Kód VBA: Změna barvy textového pole na základě hodnot buněk:

Private Sub TextBox1_Change()
    If ActiveSheet.Range("A1").Value > ActiveSheet.Range("B1").Value Then
        Me.TextBox1.BackColor = vbRed
    Else
        Me.TextBox1.BackColor = vbYellow
    End If
End Sub

barva textového pole doc na základě hodnoty 2

Poznámka: Ve výše uvedeném kódu, Textové pole 1 je název textového pole, který jste vložili, A1 a B1 jsou dvě buňky, na kterých chcete změnit barvu textového pole, změňte je podle potřeby.

3. Poté uložte a zavřete okno kódu a ukončete Režim návrhu, nyní, pokud je buňka A1 větší než B1, bude při psaní textu do textového pole vyplněna červenou barvou a pokud je A1 menší než B1, bude při zadávání hodnoty do textového pole vyplněna žlutou barvou, viz screenshot:

barva textového pole doc na základě hodnoty 3


šipka modrá pravá bublina Změňte barvu textového pole na základě hodnoty v textovém poli pomocí kódu VBA

Pokud chcete změnit barvu textového pole na základě hodnoty v textovém poli, například když je hodnota v textovém poli mezi 1 a 10, vyplněná barva textového pole je červená, barva textového pole je zelená, pokud je hodnota mezi 11 a 20, pokud je jiné hodnoty, barva textového pole je žlutá. K řešení tohoto úkolu použijte níže uvedený kód VBA.

1. Po vložení textového pole na něj klikněte pravým tlačítkem a vyberte Zobrazit kód z kontextové nabídky otevřete Microsoft Visual Basic pro aplikace okno a poté do prázdného modulu nahraďte původní kód následujícím kódem VBA:

Kód VBA: Změna barvy textového pole na základě hodnoty v textovém poli:

Private Sub TextBox1_Change()
    On Error Resume Next
    Select Case TextBox1.Value
        Case 1 To 10:
            TextBox1.BackColor = vbRed
        Case 11 To 20:
            TextBox1.BackColor = vbGreen
        Case Else:
            TextBox1.BackColor = vbYellow
    End Select
End Sub

barva textového pole doc na základě hodnoty 4

Poznámka: Ve výše uvedeném kódu, Textové pole 1 je název textového pole, které jste vložili, a můžete změnit hodnoty a barvu pozadí v kódu na svou vlastní.

2. Poté uložte a zavřete okno kódu a ukončete Režim návrhu, nyní, pokud zadáte hodnotu mezi 1 a 10 do textového pole, jeho barva pozadí se změní na červenou, hodnota mezi 11 a 20, barva pozadí textového pole se změní na zelenou, ostatní hodnoty, změní se na žlutou, jak ukazuje následující obrázek:

barva textového pole doc na základě hodnoty 5


Související články:

Jak vložit obrázek do textového pole?

Jak nastavit výchozí hodnotu v textovém poli?

Jak povolit zadávání pouze čísel do textového pole?

Jak použít kontrolu pravopisu v textovém poli?

Nejlepší nástroje pro produktivitu v kanceláři

Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

karta kte 201905


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Nevermind, I figured it out. Instead of making the event which triggers the change "Textbox1_GotFocus()", I made it "Worksheet_SelectionChange(ByVal Target As Range)". Now any time the value in one of the cells changes, the textbox color changes automatically.
This comment was minimized by the moderator on the site
For me, when trying to change the textbox color value based on two cell values, the textbox only updates if you type something into the textbox. I need it to update automatically. Guess I'll just have to learn VBA to figure out why.
This comment was minimized by the moderator on the site
Can someone provide an example workbook so I can see this working? I keep trying but to no avail. Thanks
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations