Excel用户定义的功能:更改单元格的颜色

Lar*_*y K 2 excel vba

我在Excel中有一个用户定义的函数.它被称为电子表格单元格中的公式函数,并且工作正常.

我希望该函数能够根据返回的值更改单元格的颜色.基本上,改变细胞的颜色是该功能的副作用.

我试过了

Application.ThisCell.Interior.ColorIndex = 2
Run Code Online (Sandbox Code Playgroud)

但它失败了.

Jon*_*Mac 10

下面演示了VBA UDF如何更改工作表内容的着色而不是使用条件格式.

只要两个工作表的行和列按相同的顺序排序,那么这将比较两个单独的Excel工作表之间的每个单元格的差异.

您可以在第三张纸上将其添加到所需数量的单元格中,以检测两张纸上相同两个单元格之间的差异,并显示以下数据: =DifferenceTest(Sheet1!A1,Sheet2!A1)

并且要存储在VBA编辑器中的函数如下:

Function DifferenceTest(str1 As String, str2 As String) As String

    If str1 = str2 Then
            Application.Caller.Font.ColorIndex = 2
    Else
            Application.Caller.Font.ColorIndex = 3
            DifferenceTest = str1 & " vs " & str2
    End If

End Function
Run Code Online (Sandbox Code Playgroud)


sha*_*esh 6

这是不可能做到的.用户定义的函数不能更改工作簿/工作表等的状态.

使用条件格式来实现您的目标.

编辑:这是一个更多的建议,而不是一个真正的答案.

  • +1:更准确地说,这可以做到,但绝对不应该这样做.条件格式几乎肯定是在这种情况下的方式. (2认同)