Gå til hovedindhold

Hvordan ændres tekstboksfarve baseret på værdi i Excel?

I Excel kan vi anvende funktionen Betinget formatering til at ændre baggrundsfarven baseret på celleværdi, men i denne artikel vil jeg tale om, hvordan du ændrer tekstboksfarve baseret på celleværdi eller værdi i tekstboks.

Skift tekstboksfarve baseret på celleværdi med VBA-kode

Skift tekstboksfarve baseret på værdi i tekstboks med VBA-kode


pil blå højre boble Skift tekstboksfarve baseret på celleværdi med VBA-kode

Lad os sige, hvis celleværdien i A1 er større end celleværdien i B1, vil jeg have, at tekstboksen skal udfyldes med rød farve, tværtimod skal tekstboksen udfyldes med gul farve. Opnå dette job med følgende trin:

1. Indsæt en tekstboks ved at klikke på Udvikler > indsatte > Tekstboks (ActiveX-kontrol), og tegn derefter en tekstboks, se skærmbillede:

doc tekstboksfarve baseret på værdi 1

2. Højreklik derefter på tekstboksen, og vælg Vis kode fra genvejsmenuen for at åbne Microsoft Visual Basic til applikationer vindue, og udskift derefter den originale kode med følgende VBA-kode i det tomme modul:

VBA-kode: Skift tekstboksfarve baseret på celleværdier:

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

doc tekstboksfarve baseret på værdi 2

Bemærk: I ovenstående kode, Tekstboks 1 er det tekstfeltnavn, du har indsat, A1 , B1 er de to celler, du vil ændre tekstboksfarve baseret på, skal du ændre dem til dit behov.

3. Gem og luk derefter kodevinduet, og afslut Designtilstand, nu, hvis celle A1 er større end B1, når du skriver tekst i tekstboksen, vil den blive fyldt med rød farve, og hvis A1 er mindre end B1, når du indtaster værdi i tekstboksen, vil den blive fyldt med gul farve, se skærmbillede:

doc tekstboksfarve baseret på værdi 3


pil blå højre boble Skift tekstboksfarve baseret på værdi i tekstboks med VBA-kode

Hvis du vil ændre tekstboksfarven baseret på værdien i tekstboksen, for eksempel når værdien i tekstboksen er mellem 1 og 10, er tekstboksens udfyldte farve rød, tekstboksens farve er grøn, hvis værdien er mellem 11 og 20, hvis den er andre værdier, tekstboksens farve er gul. For at håndtere denne opgave skal du anvende nedenstående VBA-kode.

1. Når du har indsat en tekstboks, skal du højreklikke på den og vælge Vis kode fra genvejsmenuen for at åbne Microsoft Visual Basic til applikationer vindue, og udskift derefter den originale kode med følgende VBA-kode i det tomme modul:

VBA-kode: Skift tekstboksfarve baseret på værdi i tekstboks:

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

doc tekstboksfarve baseret på værdi 4

Bemærk: I ovenstående kode, Tekstboks 1 er navnet på den tekstboks, du er indsat, og du kan ændre værdierne og baggrundsfarven i koden til din egen.

2. Gem og luk derefter kodevinduet, og afslut Design Mode, nu, hvis du indtaster værdien mellem 1 og 10 i tekstboksen, bliver dens baggrundsfarve rød, værdien mellem 11 og 20, tekstboksens baggrundsfarve bliver grøn, andre værdier, den bliver gul som følgende skærmbillede vist:

doc tekstboksfarve baseret på værdi 5


Relaterede artikler:

Hvordan indsættes billede i tekstfeltet?

Hvordan indstilles en standardværdi i en tekstboks?

Hvordan tillader man kun at indtaste tal i tekstfeltet?

Hvordan anvender stavekontrol i tekstfelt?

Bedste kontorproduktivitetsværktøjer

🤖 Kutools AI Aide: Revolutionér dataanalyse baseret på: Intelligent udførelse   |  Generer kode  |  Opret brugerdefinerede formler  |  Analyser data og generer diagrammer  |  Aktiver Kutools funktioner...
Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøjer (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøjer (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøjer (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøjer (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

Beskrivelse


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
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