Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何过滤列中的非彩色单元格_Excel_Vba - Fatal编程技术网

Excel 如何过滤列中的非彩色单元格

Excel 如何过滤列中的非彩色单元格,excel,vba,Excel,Vba,我有一个列,其中一些单元格有彩色背景,而一些没有,是否可以在非彩色单元格上进行过滤 我尝试了下面的代码,但不起作用,也无法通过搜索web找到任何东西 我还尝试设置了RGB(255,255,255),希望在白色背景上进行过滤 With ws .AutoFilterMode = False .Range("A1", Cells(lRow, lCol)).Cells.AutoFilter .Range("A1", Cells(lRow, lCol)).Cells.AutoFi

我有一个列,其中一些单元格有彩色背景,而一些没有,是否可以在
彩色单元格上进行过滤

我尝试了下面的代码,但不起作用,也无法通过搜索web找到任何东西

我还尝试设置了
RGB(255,255,255)
,希望在
白色背景上进行过滤

 With ws
    .AutoFilterMode = False
    .Range("A1", Cells(lRow, lCol)).Cells.AutoFilter
    .Range("A1", Cells(lRow, lCol)).Cells.AutoFilter Field:=4, Criteria1:="<>RGB(255, 199, 206)", Operator:=xlFilterCellColor

    On Error Resume Next
    .UsedRange.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    On Error GoTo 0

    .AutoFilterMode = False 
End With
与ws
.AutoFilterMode=False
.Range(“A1”,单元格(lRow,lCol)).Cells.AutoFilter
.Range(“A1”,单元格(lRow,lCol)).Cells.AutoFilter字段:=4,准则1:=“RGB(255,199,206)”,运算符:=xlFilterCellColor
出错时继续下一步
.UsedRange.Offset(1,0).特殊单元格(xlCellTypeVisible).EntireRow.Delete
错误转到0
.AutoFilterMode=False
以

如果您可以添加一列,然后使用它进行筛选,则可以编写自己的函数

在本例中,我编写了一个接受两个参数的函数,一个参数标识包含我要过滤的源颜色的单元格,另一个参数包含我要计算的单元格。如果它们不匹配,则返回1,如果不匹配,则返回0,然后我所做的就是对其进行筛选

Function MatchesColor(SourceColor As Range, EvalColor As Range)

  If SourceColor.Interior.ColorIndex = EvalColor.Interior.ColorIndex Then
    MatchesColor = 1
  Else
    MatchesColor = 0
  End If

End Function

如果您可以添加一列,然后使用它来过滤,那么您可以编写自己的函数

在本例中,我编写了一个接受两个参数的函数,一个参数标识包含我要过滤的源颜色的单元格,另一个参数包含我要计算的单元格。如果它们不匹配,则返回1,如果不匹配,则返回0,然后我所做的就是对其进行筛选

Function MatchesColor(SourceColor As Range, EvalColor As Range)

  If SourceColor.Interior.ColorIndex = EvalColor.Interior.ColorIndex Then
    MatchesColor = 1
  Else
    MatchesColor = 0
  End If

End Function

这是用于选择默认背景色的运算符:=xlFilterNoFill

您可以删除或不删除标准1:=RGB(红色、蓝色、绿色)


下面是用于选择默认背景色的运算符
运算符:=xlFilterNoFill

您可以删除或不删除标准1:=RGB(红色、蓝色、绿色)


要查找没有填充颜色的记录,请使用运算符xlFilterNoFill,不要指定 任何标准

.Range("A2").AutoFilter Field:=1, Operator:=xlFilterNoFill
例如:

  Sub FilterNoFontColor()

     Range("A1").AutoFilter Field:=6, Operator:=xlFilterNoFill

 End Sub

要查找没有填充颜色的记录,请使用运算符xlFilterNoFill,不要指定 任何标准

.Range("A2").AutoFilter Field:=1, Operator:=xlFilterNoFill
例如:

  Sub FilterNoFontColor()

     Range("A1").AutoFilter Field:=6, Operator:=xlFilterNoFill

 End Sub