将背景颜色从主表复制到工作表 - 而不是内容

将背景颜色从主表复制到工作表 - 而不是内容

我想知道是否有人可以帮忙,我对 Excel 一窍不通。我必须创建一个电子表格,用于数据中心管理和硬件跟踪,所以我所做的就是创建一个主工作表和每个机架一个工作表,我需要实现的是当主工作表上的单元格填充背景颜色(灰色)时,它会改变相应工作表上的颜色。不知道这有多大意义 :)

将 B2:B25 保存到工作表 1 B4:B27.. 将 D2:D25 保存到工作表 2 B4:B27.. 将 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 列

Sheet2 的 F 列 -> Sheet5 的 B 列

始终位于原始行下方 2 行。

答案2

既然你称自己为菜鸟,我就会引导你走上正确的道路......

  1. 复制具有原始样式的单元格:Ctrl+c

  2. 选择目标单元格并选择性粘贴:Alt+++esv

  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

注意:无需任何修改,只要更改任何单元格,此代码就会将所有工作表的所有颜色更改镜像到所有其他工作表,这有点过头了。可以根据需要使解决方案更加高效。

相关内容