Копировать цвет фона с главного листа на рабочий лист, а не содержимое

Копировать цвет фона с главного листа на рабочий лист, а не содержимое

Интересно, может ли кто-нибудь помочь, я новичок в Excel. Мне нужно создать электронную таблицу, которая будет использоваться в управлении центром обработки данных и отслеживании оборудования, поэтому я создал главный рабочий лист и лист на стойку, мне нужно добиться того, чтобы при заполнении ячейки на главном листе фоновым цветом (серым) она затем меняла цвет на соответствующем рабочем листе. Не уверен, насколько это имеет смысл :)

Master B2:B25 на рабочий лист 1 B4:B27.. Master D2:D25 на рабочий лист 2 B4:B27.. Master E2:E25 на рабочий лист 3 B4:B27..и т.д.

Я не могу использовать функцию копирования, поскольку она копирует содержимое ячейки, а мне это не нужно, только цвет фона.

решение1

VBA не имеетсобытие изменения цветакоторые можно захватить, чтобы сделать их полностью автоматическими.

Я решил сделать этопри двойном щелчке. Дважды щелкните ячейку, и цвет скопируется в соответствующую ячейку на другом листе:

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

Откройте макросы /VBA, дважды щелкнув по левому столбцуЛист2, вставьте код справа

Когда вы меняете цвет ячейки, дважды щелкните по ней, и она изменится следующим образом:

Лист2 СтолбецB -> Лист3 СтолбецB

Лист2 СтолбецD -> Лист4 СтолбецB

Лист2 СтолбецF -> Лист5 СтолбецB

Всегда на 2 строки ниже исходной строки.

решение2

Поскольку ты называешь себя нубом, я направлю тебя на правильный путь...

  1. Копировать ячейку с исходным стилем: Ctrl+c

  2. Выберите ячейку назначения и вставьте специальную вставку: Alt+ e+ s+v

  3. Выберите параметр «Форматы», чтобы вставить только форматы скопированной ячейки: t+Enter

решение3

Если вы выделите все рабочие листы (удерживайте клавишу Shift и щелкните по каждой вкладке), то вы сможете отформатировать их все одновременно - любые изменения, которые вы внесете в исходный лист, будут отражены в остальных. Но это имеет смысл только в том случае, если вы говорите только о первоначальной настройке вашего листа.

Если вы хотите, чтобы подобные изменения происходили более регулярно и автоматически на протяжении всего жизненного цикла рабочей книги, это можно решить только с помощью VBA (Visual Basic для приложений, который встроен в большинство современных версий Office как стандарт). В этом случае вам нужно будет добавить некоторый код для события Worksheet_Change():

  1. Запомните цвет фона вашего текущего выбора

    Dim myColor As Integer myColor = Selection.Interior.ColorIndex

  2. Выберите новую область, к которой будет применен цвет; это должно выделить текущий диапазон на всех видимых рабочих листах.

    Worksheets.Select

  3. Примените исходный цвет фона к новому выделению.

    Selection.Interior.ColorIndex = myColor

  4. Повторно выберите только ту вкладку, с которой вы изначально работали. (Я предполагаю, что ваша вкладка «Мастер» — это первый лист)

    Worksheets(1).Select

Примечание:без каких-либо изменений этот код отражает ВСЕ изменения цвета со ВСЕХ листов на ВСЕ другие всякий раз, когда изменяется ЛЮБАЯ ячейка, что является излишеством. Решение можно сделать гораздо более эффективным по мере необходимости.

Связанный контент