gpt4 book ai didi

excel - 用于测试单元格是否在 Excel 中进行条件格式设置的 VBA 函数

转载 作者:行者123 更新时间:2023-12-01 19:04:43 26 4
gpt4 key购买 nike

我编写了下面的函数来测试单元格是否根据单元格填充激活了条件格式。

Function cfTest(inputCell)

If inputCell.DisplayFormat.Interior.Color <> 16777215 Then
cfTest = True
Else
cfTest = False
End If
End Function

但是它不起作用。话虽如此,这个方法确实可以。

Sub myCFtest()
Dim R As Integer
R = 2
Do
If Range("I" & R).DisplayFormat.Interior.Color <> 16777215 Then
Range("K" & R).Value = True
Else
Range("K" & R).Value = False
End If

R = R + 1

Loop Until R = 20
End Sub

谁能向我解释一下为什么这个功能不起作用?

干杯。

编辑:更新了功能,但不适用于条件格式

Function cfTest(inputCell)
If inputCell.Interior.ColorIndex <> -4142 Then
cfTest = True
Else
cfTest = False
End If
End Function

最佳答案

如果想要得到想要的结果,这里是一个工作演示。 E 列查看 D 列,如果按单元格填充颜色进行条件格式化,则显示值 TRUE。即单击姓名“Bob”,然后通过下面的代码有条件地格式化突出显示单元格

=IF(AND(CELL("row")=ROW(D1),CELL("col")=COLUMN(D1)),TRUE)

enter image description here

单击另一个名称,会出现相同的结果。

enter image description here

但是,当我将名称单击到另一个单元格时,我选择的姓氏仍然突出显示,给人一种按钮仍处于按下状态的印象。

enter image description here

背后的VBA代码如下。

这位于 Sheet1 代码中:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 4 And Target.Row <= Application.WorksheetFunction.CountA(Range("D:D")) Then
Range("D:D").Calculate
Call cfTest

End If

End Sub

这是方法本身:

Sub cfTest()

Range("E:E").ClearContents

If ActiveCell.DisplayFormat.Interior.color <> 16777215 Then
ActiveCell.Offset(0, 1) = True
End If

End Sub

我最终基于此示例构建的应用程序还有更多内容,但回到发布的问题,cfTest() 方法允许我测试单元格是否根据单元格填充进行条件格式化。

关于excel - 用于测试单元格是否在 Excel 中进行条件格式设置的 VBA 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com