根据第二张工作表中的单元格引用将单元格颜色从一张工作表复制到另一张工作表

根据第二张工作表中的单元格引用将单元格颜色从一张工作表复制到另一张工作表

在工作簿中,我有一张工作表(“出勤率”),其中包含带有注释的单元格,其中填充工具也用于指示注释类别(单元格为黄色表示不确定,如下所示,绿色表示确定,红色表示不确定等)。

“出勤”表显示评论示例:

在此处输入图片描述

我有另一张工作表(“评论”),其中列出了来自“出勤” (即活动工作表) 的所有带有评论的单元格,以及 B 列中指向出现评论的单元格的单元格引用。这是使用我在此处找到的宏生成的。

“注释”表分别显示工作表名称、单元格引用、单元格值和注释的列

在此处输入图片描述

我想做的是运行一个宏,复制“评论”B 列中引用的“出勤”单元格的单元格颜色。我还想知道如何将其应用于“评论”的整个 B 列,如下图所示

“评论”显示基于其他工作表中单元格引用的着色预期效果

在此处输入图片描述

任何帮助都将不胜感激,因为我找不到另一个线程来概括根据另一张表中的单元格引用复制单元格颜色的问题。我认为解决方案可能基于使用间接,但我不确定,因为我是 VBA 新手。

答案1

这是一个非常简单的 VBA 代码,但可以完成以下工作:

Sub CopyColors()
    For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row
        Sheet2.Range("B" & i).Interior.Color = Sheet1.Range(Sheet2.Range("B" & i).Text).Interior.Color
    Next i
End Sub

Cells(Rows.Count, 2).End(xlUp).Row找到 B 列中包含数据的最后一行,其余部分非常简单。当然 Sheet2 引用工作表“评论”,Sheet1 引用工作表“出勤”。您也可以使用Range("Comments!B" & i)而不是Sheet2.Range("B" & i),然后插入新工作表对引用没有影响(只会更改工作表名称)。

也许可以用条件格式(不用宏)来实现,但我认为这真的很麻烦,尤其是当你有很多可能的颜色时。我甚至不确定这是否可行。

编辑:您应该将代码粘贴到 VB 编辑器中的工作簿模块中,例如这里

相关内容