我想知道是否有人可以帮忙,我对 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
既然你称自己为菜鸟,我就会引导你走上正确的道路......
复制具有原始样式的单元格:Ctrl+c
选择目标单元格并选择性粘贴:Alt+++esv
选择格式选项以仅粘贴复制单元格的格式:t+Enter
答案3
如果您选择所有工作表(按住 Shift 键并单击每个选项卡),则可以同时格式化所有工作表 - 您对源工作表所做的任何更改都将反映在其余工作表中。但这只有在您只是谈论工作表的初始设置时才有意义。
如果您希望此类更改在工作簿的整个生命周期内更有规律、更自动地发生,则只能使用 VBA 来解决(Visual Basic 应用程序,它已作为标准嵌入到大多数现代 Office 版本中)。在这种情况下,您需要针对 Worksheet_Change() 事件添加一些代码:
记住当前选择的背景颜色
Dim myColor As Integer myColor = Selection.Interior.ColorIndex
选择要应用颜色的新区域;这应该选择所有可见工作表上的当前范围。
Worksheets.Select
将原始背景颜色应用到新选择中
Selection.Interior.ColorIndex = myColor
仅重新选择您最初处理的选项卡。(我假设您的主选项卡是第一张表)
Worksheets(1).Select
注意:无需任何修改,只要更改任何单元格,此代码就会将所有工作表的所有颜色更改镜像到所有其他工作表,这有点过头了。可以根据需要使解决方案更加高效。