Ich frage mich, ob mir jemand helfen kann, ich bin ein Neuling, wenn es um Excel geht. Ich muss eine Tabelle erstellen, die für die Verwaltung von Rechenzentren und die Hardwareverfolgung verwendet wird. Ich habe also ein Hauptarbeitsblatt und ein Blatt pro Rack erstellt. Ich muss erreichen, dass, wenn eine Zelle auf dem Hauptblatt mit einer Hintergrundfarbe (grau) gefüllt ist, die Farbe auf dem entsprechenden Arbeitsblatt geändert wird. Ich bin mir nicht sicher, ob das Sinn macht :)
Master B2:B25 zu Arbeitsblatt 1 B4:B27.. Master D2:D25 zu Arbeitsblatt 2 B4:B27.. Master E2:E25 zu Arbeitsblatt 3 B4:B27..usw.
Ich kann „Kopieren“ nicht verwenden, da dadurch der Inhalt der Zelle kopiert wird, was ich nicht möchte, sondern nur die Hintergrundfarbe.
Antwort1
VBA hat keinFarbwechsel-Ereignisdie erfasst werden können, um den Vorgang vollautomatisch durchzuführen.
Ich beschließe, es zu schaffenbei Doppelklick. Sie doppelklicken auf eine Zelle und die Farbe wird in die entsprechende Zelle in einem anderen Arbeitsblatt kopiert:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim wkb As Workbook
Set wkb = ThisWorkbook
total_sheets = wkb.Worksheets.Count
aff_row = Target.Row
aff_column = Target.Column
sheet_used = (aff_column / 2) + 2
If aff_column > 1 Then
If Int(sheet_used) = sheet_used Then
If sheet_used <= total_sheets Then
wkb.Sheets(sheet_used).Cells(aff_row + 2, 2).Interior.Color = Target.Interior.Color
End If
End If
End If
End Sub
Öffnen Sie Makros / VBA Doppelklicken Sie auf die linke SpalteTabelle 2, fügen Sie den Code auf der rechten Seite ein
Wenn Sie die Farbe einer Zelle ändern, doppelklicken Sie darauf und sie ändert sich folgendermaßen:
Tabelle2 SpalteB -> Tabelle3 SpalteB
Tabelle2 SpalteD -> Tabelle4 SpalteB
Tabelle2 SpalteF -> Tabelle5 SpalteB
Immer 2 Zeilen unterhalb der Originalzeile.
Antwort2
Da Sie sich selbst als Neuling bezeichnen, werde ich Ihnen den richtigen Start ermöglichen ...
Zelle mit Originalstil kopieren: Ctrl+c
Zielzelle auswählen und Inhalt einfügen: Alt+ e+ s+v
Wählen Sie die Option „Formate“, um nur die Formate der kopierten Zelle einzufügen: t+Enter
Antwort3
Wenn Sie alle Arbeitsblätter auswählen (halten Sie die Umschalttaste gedrückt und klicken Sie auf jede Registerkarte), können Sie alle gleichzeitig formatieren. Jede Änderung, die Sie am Quellblatt vornehmen, wird auf den Rest übertragen. Das macht aber nur dann wirklich Sinn, wenn es nur um die Ersteinrichtung Ihres Blattes geht.
Wenn Sie möchten, dass solche Änderungen regelmäßiger und automatisch über die gesamte Lebensdauer der Arbeitsmappe hinweg erfolgen, kann dies nur mit VBA gelöst werden (Visual Basic für Anwendungen, das in den meisten modernen Office-Versionen standardmäßig integriert ist). In diesem Fall müssten Sie Code für das Ereignis Worksheet_Change() hinzufügen:
Merken Sie sich die Hintergrundfarbe Ihrer aktuellen Auswahl
Dim myColor As Integer myColor = Selection.Interior.ColorIndex
Wählen Sie den neuen Bereich aus, auf den die Farbe angewendet werden soll. Dadurch sollte Ihr aktueller Bereich auf allen sichtbaren Arbeitsblättern ausgewählt werden.
Worksheets.Select
Wenden Sie Ihre ursprüngliche Hintergrundfarbe auf Ihre neue Auswahl an
Selection.Interior.ColorIndex = myColor
Wählen Sie nur die Registerkarte erneut aus, an der Sie ursprünglich gearbeitet haben. (Ich gehe davon aus, dass Ihre Masterregisterkarte das erste Blatt ist.)
Worksheets(1).Select
Hinweis:ohne Änderungen spiegelt dieser Code ALLE Farbänderungen von ALLEN Blättern auf ALLE anderen Blätter, wenn IRGENDEINE Zelle geändert wird, was übertrieben ist. Die Lösung könnte bei Bedarf viel effizienter gestaltet werden.