【问题标题】:Filter based on cell color根据单元格颜色过滤
【发布时间】:2020-01-23 10:10:07
【问题描述】:

我正在尝试在 Excel 中编写宏。

我有多张工作表,我想根据填充颜色进行过滤。

如何为此编写宏?使用录制宏按钮录制宏,但仅适用于一张纸。这就是我自己所做的一切。如何将该 MACRO 应用于所有工作表?我的代码如下:

Sub FILTER_MACRO()
'
' FILTER_MACRO Macro
 '
    ActiveSheet.Range("$A$1:$C$17").AutoFilter Field:=2, Criteria1:=RGB(255, _
        255, 0), Operator:=xlFilterCellColor
End Sub

【问题讨论】:

  • 你尝试过任何代码来解决这个问题吗?
  • 您好。我使用录制宏按钮录制了宏,但这仅适用于一张纸。这就是我自己所做的一切。如何将该 MACRO 应用于所有工作表?
  • @user7144104 发布您目前记录/尝试过的代码
  • 不要在 cmets 部分发布您的代码,请将其添加到您的问题中。
  • 我刚刚在问题中发布了我的代码

标签: excel vba filter


【解决方案1】:
Public Sub Filter_Macro()

    Dim wrkSht As Worksheet

    'Loop through all sheets in the workbook containing the code (ThisWorkbook).
    For Each wrkSht In ThisWorkbook.Worksheets

        'With...End With block.
        '".Range", ".Cells" will refer to wrksht due to this block.
        '".Cells(.Rows.Count, 3).End(xlUp)" will find the last row containing data in column C.
        With wrkSht
            .Range(.Cells(1, 1), .Cells(.Rows.Count, 3).End(xlUp)).AutoFilter _
                Field:=2, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor

            'Original filter range.
            '.Range("$A$1:$C$17").AutoFilter _
                Field:=2, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor

            'Using last row containing data in column A.
            '.Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 3)).AutoFilter _
                Field:=2, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor

        End With

    Next wrkSht

End Sub  

延伸阅读:
With....End With
For Each...Next
Range.End Property

【讨论】:

  • 没问题。随意勾选接受的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-15
  • 2016-11-17
相关资源
最近更新 更多