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

Hur länkar man automatiskt en cellfärg till en annan i Excel?

När du använder Microsoft Excel, vet du hur man länkar en cellfärg till en annan automatiskt? Den här artikeln visar metod för att uppnå det.

Länka automatiskt en cellfärg till en annan med VBA-kod


Länka automatiskt en cellfärg till en annan med VBA-kod

Om du antar att du vill länka fyllningsfärgen för cell A1 till C1, när du ändrar fyllningsfärgen för A1, blir färgen på C1 automatiskt densamma. Gör så här.

1. Högerklicka på den arkflik som du behöver för att länka en cellfärg till en annan och klicka sedan på Visa kod från högerklickmenyn.

2. I öppningen Microsoft Visual Basic för applikationer kopiera och klistra in nedanstående VBA-kod i Koda fönster.

VBA-kod: Länk automatiskt en cellfärg till en annan i Excel

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

Anmärkningar: du kan ändra cellreferensen i koden efter behov.

3. Fortsätt för att trycka på andra + Q samtidigt för att stänga Microsoft Visual Basic för applikationer fönster.

Från och med nu, när du ändrar fyllningsfärgen för cell A1, kommer fyllningsfärgen för cell C1 automatiskt att ändras till samma färg.


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (48)
Klassad 4.5 av 5 · 1 betyg
Denna kommentar minimerades av moderatoren på webbplatsen
vad sägs om mellan ark i samma arbetsbok - vänligen råd hur ändras formeln? tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Bra handledning. Tack :) !!!!
Denna kommentar minimerades av moderatoren på webbplatsen
ja jag skulle vilja veta hur man speglar en färg till ett annat ark??? Jag har en formel i båda rutorna men jag skulle vilja att färgen på den speglar färgen på huvudarket när den ändras. dvs.. Träningsdatumbladet är med 30 dagar och rutan ändras till röd; motsvarande ruta på huvudarket, rutan med "X" ändras också till rött.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Jessica,
Vad menar du med box? Textruta?
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att göra detta om de två cellerna finns i olika arbetsböcker?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Dustin,
Kan inte hantera olika arbetsböcker. Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag såg här uppe, i förklaringen, hur man gör för en cell, hur man gör för få celler?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Rogerio,
Menar du länka fyllningsfärgen för en cell till flera celler samtidigt?
Denna kommentar minimerades av moderatoren på webbplatsen
y su el la celda A1 tiene un formato condicional ?
Denna kommentar minimerades av moderatoren på webbplatsen
Om cellerna är olika ark?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Mario,
Om du vill länka färgen på cell A1 i det aktuella kalkylbladet till området B1:J19 i Blad2, använd nedanstående VBA-kod. Efter att ha ändrat fyllningsfärgen för A1, klicka på en annan cell i det aktuella arbetsbladet för att aktivera koden.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xStrAddress som sträng
xStrAddress = "Ark2!$B$1:$J$19"
Ställ in xRg = Application.Range(xStrAddress)
xRg.Interior.Color = Me.Range("A1").Interior.Color
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Det fungerade. Hur skulle det fungera om du har A1 i Sheet1 förändringar som ska hända med B1 i Sheet2, men även A2 i Sheet1 förändringar som händer med B2 i Sheet2?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Kan någon hjälpa mig med ovanstående fråga snarast, jag är i stort behov av det och har ont om tid.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
VBA-koden nedan kan hjälpa dig att lösa problemet. Tack för din kommentar.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xStrAddress som sträng
xStrAddress = "Ark2!$B$1"
Ställ in xRg = Application.Range(xStrAddress)
xRg.Interior.Color = Me.Range("A1").Interior.Color
xStrAddress = "Ark2!$B$2"
Ställ in xRg = Application.Range(xStrAddress)
xRg.Interior.Color = Me.Range("A2").Interior.Color
xStrAddress = "Ark2!$B$3"
Ställ in xRg = Application.Range(xStrAddress)
xRg.Interior.Color = Me.Range("A3").Interior.Color
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Не могли бы вы написать прям оригинальный код,fria разъяснений,я новичок и вообще не могу понять)
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Andrew,
Detta är en hel VBA-kod som du direkt kan använda i ditt kalkylblad. Följ instruktionerna steg-för-steg för att lägga till den i motsvarande kodfönster i VBA-redigeraren.
Denna kommentar minimerades av moderatoren på webbplatsen
Tyvärr fungerade det inte för mig. Jag undrar om det beror på att ursprungscellen är en lista med en villkorlig formateringsregel för att ändra bakgrundsfärger beroende på vilket alternativ som väljs i listan.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Amanda,
Den här koden fungerar inte för fyllningsfärgen som tilldelas av villkorlig formateringsregel. Beklagar olägenheten.
Denna kommentar minimerades av moderatoren på webbplatsen
Är det möjligt att länka färgen från ett område på ett ark till ett annat område av samma storlek på ett annat ark? Till exempel har jag alternerande färger varje par rader, och jag vill att färgschemat ska kopieras över till ett annat ark.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Charles,
Koden nedan kan göra dig en tjänst. Om du vill länka färgen från område A1:A19 på Blad1 till samma område "A1:A19" på Blad2, kopiera koden till Ark1s kodfönster, klicka sedan på valfri cell på Blad1 för att aktivera koden. Hoppas jag kan hjälpa. Tack för din kommentar.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xStrAddress som sträng
xStrAddress = "Ark2!$A$1:$A$19"
Ställ in xRg = Application.Range(xStrAddress)
xRg.Interior.Color = Me.Range("A1:A19").Interior.Color
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
den här koden verkar fungera om jag refererar till en cell, men om jag matar in ett intervall, blir intervallet på blad 2 svart istället för att hantera den inre färgen.

några idéer varför det kan hända?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Joey,
Ber om ursäkt för misstaget. Prova denna kod:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress som sträng
Dim xFNum Som heltal
xStrAddress = "Ark2!$A$1:$A$10"
Ställ in xRg = Application.Range(xStrAddress)
Ställ in xCRg = Me.Range("$A$1:$A$10")
On Error Resume Next
För xFNum = 1 Till xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Nästa
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Crystal,
Tack så mycket. Fungerar perfekt!
Du är fantastisk! O_o
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Crystal!
Hur ser samma kod ut om jag vill att den ska kopieras till både Sheet2 och Sheet3 samtidigt?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej kan någon svara på denna fråga. Jag försöker göra exakt detta och har ingen lycka.
Denna kommentar minimerades av moderatoren på webbplatsen
detta fungerar inte för mig. Jag får hela tiden ett felmeddelande om "kompileringsfel, tvetydigt namn upptäckt"....
Denna kommentar minimerades av moderatoren på webbplatsen
detta fungerar inte för mig. kan cellområdet är inte detsamma på båda arken. kan du ge råd om vad man ska göra eller hur man justerar koden?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej LG,
Det finns två rader du kan ändra: intervallet "$A$1:$A$10" av åttonde raden, och "Sheet2!$A$1:$A$10" på den sjätte raden, vilket indikerar att du kommer att länka intervallets fyllnadsfärg A1: A10 i ett kalkylblad (förutsatt att Sheet1, och koden ska läggas till i detta arkkodfönster) till samma intervall i Sheet2.
Du kan ange två olika intervall efter behov. Och se till att arknamnet du skriver på den sjätte raden är ett befintligt arknamn.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag använder detta för att skapa vävmönster. Jag skulle vilja ha flera uppsättningar grupper så jag behöver bara byta en cell för att se vad som kommer att hända i mitt mönster. Det fungerade från cell a1 till c1 men när jag försökte lägga till en ny uppsättning a2 till c1 gjorde det inte det. Jag kanske missförstår, men jag kopierade samma formel under den första och ändrade cellreferenserna. Är det problemet? Finns det något annat sätt?
Denna kommentar minimerades av moderatoren på webbplatsen
Den här fungerade för mig när jag klistrade in en andra bladreferens - men jag var tvungen att göra en modifiering, jag kommer att visa modifieringen nedan så att du kan se Crystals första version, sedan min med modifiering som fungerade när jag behövde inkludera två uppsättningar istället av en. Det här är den som Crystal gav till Joey efter att han sa att målområdet blev svart när han provade det:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress som sträng
Dim xFNum Som heltal
xStrAddress = "Ark2!$A$1:$A$10"
Ställ in xRg = Application.Range(xStrAddress)
Ställ in xCRg = Me.Range("$A$1:$A$10")
On Error Resume Next
För xFNum = 1 Till xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Nästa
End Sub
Min mod som fungerade för att inkludera två uppsättningar (t.ex. referera till olika kolumner eller rader eller vad har du) var att inkludera denna del:
On Error Resume Next
För xFNum = 1 Till xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Nästa
efter vart och ett av mina "set"
Så, utan att ändra provuppsättningarna som Crystal gav så att de skiljer sig från varandra (vilket dina förmodligen kommer att vara om du försöker hänvisa till olika rader etc), skulle det se ut så här:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress som sträng
Dim xFNum Som heltal
xStrAddress = "Ark2!$A$1:$A$10"
Ställ in xRg = Application.Range(xStrAddress)
Ställ in xCRg = Me.Range("$A$1:$A$10") Vid fel Återuppta nästa
För xFNum = 1 Till xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Nästa
xStrAddress = "Ark2!$A$1:$A$10"
Ställ in xRg = Application.Range(xStrAddress)
Ställ in xCRg = Me.Range("$A$1:$A$10")
On Error Resume Next
För xFNum = 1 Till xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Nästa
End Sub

där raderna 6-8 och 13-15 är "uppsättningarna" och raderna 9-12 och 16-19 är koden som måste upprepas efter varje uppsättning.
Jag hoppas att det är vettigt eftersom jag inte vet något om detta, jag hittade bara ett sätt att kopiera det som listades här som fungerade. Första gången jag försökte ha två uppsättningar genom att koppla in koden som den är, gjorde den första uppsättningen cellerna svarta och den andra uppsättningen fungerade och fick målcellerna i rätt färg. Jag kom till slut på att för att fungera behövde varje uppsättning rad 9-12-koden efter den. Denna mod tillät lämpliga färger att (i mitt fall) överföra från två olika kolumner på ursprungsarket till motsvarande celler inom ett givet intervall på målarket.
Denna kommentar minimerades av moderatoren på webbplatsen
Hur länkar jag en cells färg baserat på en annan cells värde och färg för att automatiskt länkas.

Fort Exempel.



Jag har värdet på blad 1 är 898 och på blad 2 är värdet 898 och den cellen är rosa färgad. Hur kan jag länka samma färg för att vara densamma baserat på ledtråden är att blad 2 ska länkas till blad 1 - så att det kan visa samma färg. Men det skulle vara ett intervall; använda hela raden för att matcha dess värden och länka sedan färgerna.



Vilken hjälp som helst uppskattas mycket
Denna kommentar minimerades av moderatoren på webbplatsen
Hej esad, jag har samma fall med dig för närvarande, jag skulle uppskatta om du delar
Denna kommentar minimerades av moderatoren på webbplatsen
Jag letar efter kopieringsfärger genererade från villkorsformaterad tabell till en annan tabell - automatiskt med en formel/funktion. Är detta möjligt?
Denna kommentar minimerades av moderatoren på webbplatsen
hy,
Jag skulle vilja att när jag manuellt ändrar färgen i kolumn A ark1 för att automatiskt ändra färgen i kolumn A ark2.
Jag ber om hjälp. Tack
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Ivana, Vänligen prova koden nedan. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'uppdaterad av Extendoffice 20201127
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress som sträng
Dim xFNum Som heltal
xStrAddress = "Ark2!$A$1:$A$100"
Ställ in xRg = Application.Range(xStrAddress)
Ställ in xCRg = Me.Range("$A$1:$A$100")
On Error Resume Next
För xFNum = 1 Till xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Nästa
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hola buenas tardes. Como hacer que cuando seleccione una celda se active otra, y si selecciono otro cambie a otro celda con que este vinculada.Ejemplo: si alecciono A1 se active celda H20, y si doy otro clic se desactive. Se que seria mucho trabajo porque tendria que programar cada celda, men ingen importa, es solo sabre como hacerlo. Gracias por su apoyo!
Denna kommentar minimerades av moderatoren på webbplatsen
hej ovanstående kod fungerade men fungerar inte flera gånger i ett ark? 
Denna kommentar minimerades av moderatoren på webbplatsen
Hej alla,

Mitt problem är att min hemsida (1:a arket) innehåller en sammanfattning av informationen i följande blad. Alla relevanta celler har formaterats för att återspegla värdet av deras motsvarande celler i de andra arken.

så till exempel, Min cells hemsida cell F7 är redan formaterad så att den kopierar värdet för motsvarande cell i källarket:
=kvartal1!B15

Nu, vad jag verkligen skulle vilja är att cellerna på min hemsida också matchar färgen jag manuellt väljer för deras motsvarande (källa) cell i ett annat ark. Är detta möjligt med VBA-kodning?

Jag fick koden nedan från en annan sida men den fungerar bara om cellerna finns på samma ark.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Me.Range("C1").Interior.Color = Me.Range("A1").Interior.Color
End Sub

Finns det något sätt jag kan justera den här koden för att referera till en cell på ett annat ark i samma arbetsbok?

Tack så mycket för din hjälp!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej jag undrar om du kan hjälpa mig snälla
Jag har ett kalkylblad som har teammedlemmar (17 av dem) namn på rad 2
I kolumn H skulle vi tilldela en uppgift till en gruppmedlem
I kolumn T har vi data för att visa vilket stadium teammedlemmen befinner sig i för denna uppgift (grön/gul/röd)
Det jag skulle vilja göra är att ta med färgen för uppgiften från kol T till kol H med det namn vi skulle ha angett

Någon hjälp skulle vara mycket uppskattat
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Ann,
Skulle du ha något emot att ge en skärmdump av dina data? Beklagar olägenheten.
Denna kommentar minimerades av moderatoren på webbplatsen
Enligt bifogade
Lagnamnen finns på rad 2 (R till AD)
Varje rad under teamnamnet hänför sig till uppgiften i Col D
Vad jag skulle vilja är att när ett namn skrivs in i kol. L färgar det den cellen med färgen från gruppmedlemmarnas kol på den raden
t.ex. i Col L enter Emma tittar den på Emma i W1 och tar över Green från W2. om det var Paula skulle hon titta på Paula i T1 och ta över bärnsten från T2 osv
Det angivna namnet skulle fortfarande finnas kvar som exempel i L2 & 3

Tack för din hjälp
Osäker på hur man bifogar skärmdump eller en FIL jag kan maila den
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Ann,
Jag har provat några metoder och kan fortfarande inte lösa ditt problem. Beklagar olägenheten.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för att du försökte
Denna kommentar minimerades av moderatoren på webbplatsen
Aqui la tiene en ingles


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress som sträng
Dim xFNum Som heltal
xStrAddress = ("Hoja2!A1")
Ställ in xRg = Application.Range(xStrAddress)
Ställ in xCRg = Me.Range("A1")
On Error Resume Next
För xFNum = 1 Till xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Nästa
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har lyckats med denna kodrad:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Dim xCRg As Range
Dim xStrAddress som sträng
Dim xFNum Som heltal
xStrAddress = "Ark2!$A$1:$A$10"
Ställ in xRg = Application.Range(xStrAddress)
Ställ in xCRg = Me.Range("$A$1:$A$10")
On Error Resume Next
För xFNum = 1 Till xRg.Count
xRg.Item(xFNum).Interior.Color = xCRg.Item(xFNum).Interior.Color
Nästa
End Sub

Jag skulle vilja kunna använda ett intervall för att påverka flera andra inom ett avsnitt av koden. IE, om jag ändrar en färg i $A$1:$A$10, ändrar den färgen i $C$10:$C$19, $D$21:$D$30 och $F$10:$F$19. Är detta möjligt? Tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej alla, någon kan hjälpa mig med samma ärende med esad
Det finns inga kommentarer här ännu
Ladda fler
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL