Excel VBA自定义功能设置单元格颜色

时间:2015-03-11 08:30:02

标签: excel excel-vba vba

我有这样的功能:

Function cellcolor(r As Range) As Long
  cellcolor = r.Interior.Color
End Function

然后我在Cell B1中引用它,如下所示:

=cellcolor(A1)

A1的颜色为红色,因此输出为255。

我想将B1的颜色设置为与A1的颜色相匹配,但我不确定如何。有可能吗?

我试过了:

Function cellcolor(r As Range) As Long
  cellcolor.Interior.Color = r.Interior.Color
End Function

但它没有用,有什么想法吗?

由于

修改

正如评论中所指出的,函数不能使单元格格式发生变化。因此,我使用了以下内容:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)

  For Each ws In ActiveWorkbook.Worksheets
    For Each cell In ws.Range("B1")
      If Len(cell.Formula) > 0 Then
        cell.Interior.ColorIndex = Range(cell.Formula).Interior.ColorIndex
      End If
    Next cell
  Next ws

End Sub

基本上在细胞更换时,它会找到B1正在查看的细胞,获取目标细胞的颜色并复制它。它在工作簿中的所有工作表中执行此操作。

我知道它有点奇怪,但却是为了它的目的。谢谢大家!

0 个答案:

没有答案