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

Мастер B2:B25 к рабочему листу 1 B4:B27 .. Мастер D2:D25 к рабочему листу 2 B4:B27 .. Мастер E2:E25 к рабочему листу 3 B4:B27 ... и т.д.

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

3 ответа3

0

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, дважды щелкните левой колонке Sheet2, вставьте код справа

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

Sheet2 ColumnB -> Sheet3 ColumnB

Sheet2 ColumnD -> Sheet4 ColumnB

Лист2 ColumnF -> Лист5 ColumnB

Всегда на 2 ряда ниже исходного ряда.

0

Когда ты называешь себя нубом, я начну с правильных путей ...

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

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

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

0

Если вы выберете все рабочие листы (удерживайте клавишу 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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .