Note: The other languages of the website are Google-translated. Back to English

Cum să legați automat o culoare de celulă la alta în Excel?

În timp ce utilizați Microsoft Excel, știți cum să legați automat o culoare de celulă la alta? Acest articol vă va arăta metoda de realizare.

Conectați automat o culoare a celulei la alta cu codul VBA


Conectați automat o culoare a celulei la alta cu codul VBA

Presupunând că doriți să legați culoarea de umplere a celulei A1 la C1, atunci când schimbați culoarea de umplere a A1, culoarea C1 se va transforma automat la aceeași. Vă rugăm să faceți următoarele.

1. Faceți clic dreapta pe fila de foaie pe care trebuie să legați o culoare de celulă la alta, apoi faceți clic pe Afișați codul din meniul cu clic dreapta.

2. În deschidere Microsoft Visual Basic pentru aplicații fereastra, copiați și lipiți codul VBA de mai jos în Cod fereastră.

Cod VBA: conectați automat o culoare a celulei la alta în Excel

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Range("C1").Interior.Color = Me.Range("A1").Interior.Color
End Sub

notițe: puteți modifica referința celulelor din cod după cum aveți nevoie.

3. Continuați să apăsați pe Alt + Q tastele în același timp pentru a închide Microsoft Visual Basic pentru aplicații fereastră.

De acum înainte, la schimbarea culorii de umplere a celulei A1, culoarea de umplere a celulei C1 va fi schimbată automat în aceeași culoare.


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (48)
Evaluat 4.5 din 5 · evaluări 1
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dar între foile din același registru de lucru - vă rugăm să vă sfătuiți cum se schimbă formula? Mulțumiri!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Super tutorial. Mulțumiri :) !!!!
Acest comentariu a fost redus la minimum de moderatorul de pe site
da as vrea sa stiu cum sa oglindesc o culoare pe o alta foaie??? Am o formulă în ambele casete, dar aș dori ca culoarea celei să oglindească culoarea de pe foaia principală atunci când se schimbă. adică.. Foaia cu data antrenamentului este în 30 de zile și caseta se schimbă în roșu; caseta corespunzătoare de pe foaia principală, caseta cu „X” se schimbă, de asemenea, în roșu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Jessica,
Ce vrei să spui cutie? Casetă de text?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o modalitate de a face acest lucru dacă cele două celule sunt în registre de lucru diferite?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna Dustin,
Nu pot gestiona diferite registre de lucru. Multumesc pentru comentariu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am văzut aici sus, în explicație, cum se face pentru o celulă, cum se face pentru câteva celule?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Rogerio,
Adică legați culoarea de umplere a unei celule la mai multe celule în același timp?
Acest comentariu a fost redus la minimum de moderatorul de pe site
y su el la celda A1 tiene un format condicional ?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dacă celulele nu sunt foi diferite?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi Mario,
Presupunând că doriți să legați culoarea celulei A1 din foaia de lucru curentă la intervalul B1:J19 din Sheet2, vă rugăm să aplicați codul VBA de mai jos. După schimbarea culorii de umplere a lui A1, faceți clic pe o altă celulă din foaia de lucru curentă pentru a activa codul.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xStrAddress ca șir
xStrAddress = „Sheet2!$B$1:$J$19”
Set xRg = Application.Range(xStrAddress)
xRg.Interior.Color = Me.Range("A1").Interior.Color
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Asta a funcționat. Cum ar funcționa dacă aveți modificări A1 în Sheet1 pentru B1 în Sheet2, dar și A2 în Sheet1 modificări pentru B2 în Sheet2?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Poate cineva să ajute cu întrebarea de mai sus cât de curând, am mare nevoie de ea și nu mai am timp.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,
Codul VBA de mai jos vă poate ajuta să rezolvați problema. Multumesc pentru comentariu.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xStrAddress ca șir
xStrAddress = „Sheet2!$B$1”
Set xRg = Application.Range(xStrAddress)
xRg.Interior.Color = Me.Range("A1").Interior.Color
xStrAddress = „Sheet2!$B$2”
Set xRg = Application.Range(xStrAddress)
xRg.Interior.Color = Me.Range("A2").Interior.Color
xStrAddress = „Sheet2!$B$3”
Set xRg = Application.Range(xStrAddress)
xRg.Interior.Color = Me.Range("A3").Interior.Color
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Не могли бы вы написать прям оригинальный код,без разъяснений,я новичок и вообще не не)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi Andrew,
Acesta este un întreg cod VBA pe care îl puteți utiliza direct în foaia de lucru. Vă rugăm să urmați instrucțiunile pas cu pas pentru a-l adăuga în fereastra de cod corespunzătoare din editorul VBA.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Din pacate nu mi-a mers. Mă întreb dacă se datorează faptului că celula de origine este o listă cu o regulă de formatare condiționată pentru a schimba culorile de fundal în funcție de opțiunea aleasă în listă.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna Amanda,
Acest cod nu funcționează pentru culoarea de umplere atribuită de regula de formatare condiționată. Scuze pentru neplăceri.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este posibil să legați culoarea dintr-un interval de pe o foaie la un alt interval de aceeași dimensiune pe o altă foaie? De exemplu, am culori alternative la fiecare două rânduri și vreau ca schema de culori să fie copiată pe o altă foaie.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Charles,
Codul de mai jos vă poate face o favoare. Dacă doriți să legați culoarea din intervalul A1:A19 de pe Sheet1 la același interval "A1:A19" de pe Sheet2, vă rugăm să copiați codul în fereastra de cod a Sheet1, după aceea, faceți clic pe orice celulă din Sheet1 pentru a activa codul. Sper că pot ajuta. Multumesc pentru comentariu.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xStrAddress ca șir
xStrAddress = „Sheet2!$A$1:$A$19”
Set xRg = Application.Range(xStrAddress)
xRg.Interior.Color = Me.Range("A1:A19").Interior.Color
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,
acest cod pare să funcționeze dacă fac referire la o celulă, dar dacă introduc un interval, intervalul de pe foaia 2 devine negru în loc să acopere culoarea interioară.

vreo idee de ce s-ar putea întâmpla asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Joey,
Scuze pentru greșeală. Încercați acest cod:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress ca șir
Dim xFNum ca număr întreg
xStrAddress = „Sheet2!$A$1:$A$10”
Set xRg = Application.Range(xStrAddress)
Setați xCRg = Me.Range("$A$1:$A$10")
La data de eroare CV următoare
Pentru xFNum = 1 To xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Pagina Următoare →
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Crystal,
Multumesc foarte mult. Functioneaza perfect!
Ești minunată! O_o
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Crystal!
Cum arată același cod dacă vreau să-l copieze atât în ​​Sheet2, cât și în Sheet3 în același timp?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut poate cineva sa raspunda la aceasta intrebare. Încerc să fac exact asta și nu am noroc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
asta nu merge pentru mine. Continuu să primesc o eroare despre „eroare de compilare, nume ambiguu detectat”....
Acest comentariu a fost redus la minimum de moderatorul de pe site
asta nu merge pentru mine. intervalul de celule poate nu este același pe ambele foi. ne puteți ajuta să sfătuiți ce să faceți sau cum să ajustați codul, vă rog?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut LG,
Există două linii pe care le puteți modifica: intervalul „$A$1:$A$10” din a opta linie, iar „Foaie 2!$A$1:$A$10” din a șasea linie, care indică faptul că veți lega culoarea de umplere a intervalului A1: A10 într-o foaie de lucru (presupunând că Sheet1, iar codul ar trebui adăugat la această fereastră de cod de foaie) în același interval în Sheet2.
Puteți specifica două intervale diferite după cum aveți nevoie. Și vă rugăm să vă asigurați că numele foii pe care îl introduceți în al șaselea rând este un nume existent.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Folosesc asta pentru a crea modele de țesut. Aș dori să am mai multe seturi de grupuri, așa că trebuie să schimb doar o celulă pentru a vedea ce se va întâmpla în modelul meu. A funcționat de la celula a1 la c1, dar când am încercat să adaug un nou set a2 la c1, nu a funcționat. S-ar putea să înțeleg greșit, dar am copiat aceeași formulă sub prima și am schimbat referințele de celule. Asta e problema? Există o altă cale?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acesta a funcționat pentru mine când am lipit o a doua referință de foaie - dar a trebuit să fac o modificare, voi arăta modificarea mai jos, astfel încât să puteți vedea prima versiune a lui Crystal, apoi a mea cu modificarea care a funcționat când trebuia să includ în schimb două seturi de unul. Acesta este cel pe care Crystal i-a dat-o lui Joey după ce a spus că intervalul țintă a devenit negru când a încercat-o:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress ca șir
Dim xFNum ca număr întreg
xStrAddress = „Sheet2!$A$1:$A$10”
Set xRg = Application.Range(xStrAddress)
Setați xCRg = Me.Range("$A$1:$A$10")
La data de eroare CV următoare
Pentru xFNum = 1 To xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Pagina Următoare →
End Sub
Modul meu care a funcționat pentru a include două seturi (de exemplu, face referire la coloane sau rânduri diferite sau ce ai tu) a fost să includă această parte:
La data de eroare CV următoare
Pentru xFNum = 1 To xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Pagina Următoare →
după fiecare dintre „seturile” mele
Deci, fără a modifica seturile de mostre pe care Crystal le-a dat pentru a fi diferite unele de altele (care probabil va fi al dvs. dacă încercați să vă referiți la rânduri diferite etc.), ar arăta astfel:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress ca șir
Dim xFNum ca număr întreg
xStrAddress = „Sheet2!$A$1:$A$10”
Set xRg = Application.Range(xStrAddress)
Setați xCRg = Me.Range("$A$1:$A$10")La eroare Reluare Următorul
Pentru xFNum = 1 To xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Pagina Următoare →
xStrAddress = „Sheet2!$A$1:$A$10”
Set xRg = Application.Range(xStrAddress)
Setați xCRg = Me.Range("$A$1:$A$10")
La data de eroare CV următoare
Pentru xFNum = 1 To xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Pagina Următoare →
End Sub

cu liniile 6-8 și 13-15 fiind „seturile” iar rândurile 9-12 și 16-19 fiind codul care trebuie să se repete după fiecare set.
Sper că are sens pentru că nu știu nimic despre asta, tocmai am găsit o modalitate de a copia ceea ce a fost enumerat aici care a funcționat. Prima dată când am încercat să am două seturi conectând codul așa cum este, primul set a transformat celulele în negru, iar al doilea a funcționat și a transformat celulele țintă în culoarea potrivită. În cele din urmă mi-am dat seama că, pentru a funcționa, fiecare set avea nevoie de codul de linie 9-12 după el. Acest mod a permis culorilor adecvate (în cazul meu) să se transfere din două coloane diferite de pe foaia de origine la celulele corespunzătoare dintr-un interval dat de pe foaia țintă.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum conectez culorile unei celule în funcție de valoarea și culoarea altei celule care să fie conectate automat.

Exemplu de fort.



Am valoarea foii 1 este 898 și pe foaia 2 valoarea este 898 și acea celulă este colorată în roz. Cum pot lega aceeași culoare pentru a fi aceeași pe baza indiciului este foaia 2 să fie legată de foaia 1 - astfel încât să poată arăta aceeași culoare. Dar ar fi o gamă; folosind întregul rând pentru a se potrivi cu valorile sale și apoi legați culorile.



Orice ajutor este foarte apreciat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună esad, am același caz cu tine în prezent, aș aprecia dacă ai împărtăși
Acest comentariu a fost redus la minimum de moderatorul de pe site
Caut culori de copiere generate din tabel formatat condiționat, într-un alt tabel - automat cu o formulă/funcție. Este posibil acest lucru?
Acest comentariu a fost redus la minimum de moderatorul de pe site
hy,
Mi-ar plăcea ca atunci când schimb manual culoarea în coloana A foaia1 să schimb automat culoarea în coloana A foaia2.
Cer ajutor. Mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Ivana, Vă rugăm să încercați codul de mai jos. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'actualizat de Extendoffice 20201127
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress ca șir
Dim xFNum ca număr întreg
xStrAddress = „Sheet2!$A$1:$A$100”
Set xRg = Application.Range(xStrAddress)
Setați xCRg = Me.Range("$A$1:$A$100")
La data de eroare CV următoare
Pentru xFNum = 1 To xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Pagina Următoare →
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hola buenas tardes. Como hacer que cuando select una celda se active otra, si selecciono otro cambie a otro celda cu care este vinculada.Ejemplo: si alecciono A1 se active celda H20, and si doy another click se desactive. Se que seria mult trabajo, deoarece tendria que programar cada celda, pero no importa, is solo saber como hacerlo. Mulțumesc pentru sprijin!
Acest comentariu a fost redus la minimum de moderatorul de pe site
salut codul de mai sus a funcționat, dar nu va funcționa de mai multe ori într-o singură foaie? 
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună tuturor,

Problema mea este că pagina mea de pornire (prima foaie) conține un rezumat al informațiilor furnizate în următoarele foi. Toate celulele relevante au fost formatate pentru a reflecta valoarea celulelor corespunzătoare din celelalte foi.

de exemplu, celula mea de pornire a celulei F7 este deja formatată, astfel încât să copieze valoarea celulei corespunzătoare din foaia sursă:
=sfert1!B15

Acum, ceea ce mi-aș dori cu adevărat este ca celulele de pe pagina mea de pornire să se potrivească și cu culoarea pe care o selectez manual pentru celula (sursă) corespunzătoare din altă foaie. Este posibil acest lucru folosind codarea VBA?

Am primit codul de mai jos de pe alt site, dar funcționează doar dacă celulele sunt pe aceeași foaie.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Me.Range("C1").Interior.Color = Me.Range("A1").Interior.Color
End Sub

Există vreo modalitate prin care pot modifica acest cod pentru a face referire la o celulă de pe altă foaie din același registru de lucru?

Vă mulțumesc foarte mult pentru ajutor!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut, ma intreb daca ma puteti ajuta va rog
Am o foaie de calcul care are numele membrilor echipei (17 dintre ei) în rândul 2
În coloana H am aloca o sarcină unui membru al echipei
În coloana T avem datele pentru a arăta în ce stadiu se află membrul echipei pentru această sarcină (verde/ Chihlimbar/Roșu)
Ceea ce as vrea sa fac este sa aduc culoarea pentru sarcina de la col T la Col H cu numele pe care l-am fi introdus

Orice ajutor ar fi foarte apreciat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Ann,
V-ar deranja să oferiți o captură de ecran a datelor dvs.? Îmi pare rău pentru neplăcerile create.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Precum in atasament
Numele echipei sunt în rândul 2 (de la R la AD)
Fiecare rând de sub numele echipei se referă la sarcina din Col D
Ceea ce mi-aș dori este că atunci când un nume este introdus în Col L, acesta colorează celula cu culoarea de la colul membrilor echipei de pe acel rând
de exemplu, în col. L intră pe Emma se uită la Emma în W1 și o aduce pe Green din W2. dacă ar fi Paula, s-ar uita la Paula în T1 și ar aduce chihlimbar de la T2 etc
Numele introdus va rămâne în continuare ca exemplu în L2 și 3

Vă mulțumim pentru ajutor
Nu sunt sigur cum să atașez o captură de ecran sau un FIȘIER, o pot e-mail
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Ann,
Am încercat câteva metode și încă nu vă pot rezolva problema. Îmi pare rău pentru neplăcerile create.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc că ai încercat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aqui la tiene en ingles


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress ca șir
Dim xFNum ca număr întreg
xStrAddress = ("Hoja2!A1")
Set xRg = Application.Range(xStrAddress)
Setați xCRg = Me.Range(„A1”)
La data de eroare CV următoare
Pentru xFNum = 1 To xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Pagina Următoare →
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am găsit succes folosind această linie de cod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress ca șir
Dim xFNum ca număr întreg
xStrAddress = „Sheet2!$A$1:$A$10”
Set xRg = Application.Range(xStrAddress)
Setați xCRg = Me.Range("$A$1:$A$10")
La data de eroare CV următoare
Pentru xFNum = 1 To xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Pagina Următoare →
End Sub

Aș dori să pot folosi un interval pentru a influența mai multe altele într-o secțiune de cod. IE, dacă schimb o culoare în $A$1:$A$10, aceasta schimbă culoarea în $C$10:$C$19, $D$21:$D$30 și $F$10:$F$19. Este posibil? Mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună tuturor, oricine mă poate ajuta cu același caz cu esad
Nu există comentarii postate aici încă
Încărcați mai
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL