如何使用 VBA 根据源单元格格式化目标单元格?

如何使用 VBA 根据源单元格格式化目标单元格?

我想复制表格中单元格的格式表格1到第二个表格中具有匹配文本的单元格表2

例如:NOT(H) 在表 1 中显示为绿色,我希望它在表 2 的单元格 C2 中显示为绿色。有没有可以做到这一点的 VBA?

答案1

您需要将单元格属性的值转换Interior.ColorIndex为变量

例如intCellColour = Range("A1").Interior.ColorIndex,然后将该值应用于目标单元格

例如Range("C2").Interior.ColorIndex = intCellColour

为了测试这一点,您可以在工作表上添加一个 OnClick 事件来显示一个带有单元格颜色的消息框

例如msgbox Selection.Interior.ColorIndex

但请注意,颜色索引调色板上只有 56 种颜色。您可能需要转而使用 RGB 值。

答案2

您可以像这样使用 UDF:

Function CPF(src As Range, dest As Range) As Range
    Dim c As Range, fnd As Range
    For Each c In dest
        Set fnd = src.Find(c.Value, , , xlWhole)
        If Not fnd Is Nothing Then
            c.Interior.Color = fnd.Interior.Color
        End If
    Next c
    Set CPF = dest
End Function

将代码放入通用模块中。然后在名称框输入以下内容:

CPF(src;dest)

在哪里

  • 源码是源范围的名称或地址 (table1)
  • 目的地是您的目的地范围的名称或地址(表 2)

根据您当地的设置使用逗号或分号作为分隔符。例如

CPF(B2:C4;F2:H7)

相关内容