Vba Excel:隐藏所有不带';不含有色细胞

Vba Excel:隐藏所有不带';不含有色细胞,vba,excel,Vba,Excel,我想创建一个宏,当激活时,它将隐藏所有没有设置为特定颜色的单元格的列和行。我为只包含内容的栏目改编了一个类似的子栏目,但这是另一个额外的步骤,今天早上我的大脑似乎无法处理。作为参考,这是我用来隐藏所有没有内容的列的内容: Sub HideCols() Dim LC As Integer, j As Integer Dim LR As Integer, curCnt As Integer Dim k As Integer Dim Data As Variant Application.Scree

我想创建一个宏,当激活时,它将隐藏所有没有设置为特定颜色的单元格的列和行。我为只包含内容的栏目改编了一个类似的子栏目,但这是另一个额外的步骤,今天早上我的大脑似乎无法处理。作为参考,这是我用来隐藏所有没有内容的列的内容:

Sub HideCols()
Dim LC As Integer, j As Integer
Dim LR As Integer, curCnt As Integer
Dim k As Integer
Dim Data As Variant

Application.ScreenUpdating = False

LC = Cells(3, Columns.Count).End(xlToLeft).Column

For j = 3 To LC
    LR = Cells(Rows.Count, j).End(xlUp).Row
    curCnt = 0
    Data = Range(Cells(1, 1), Cells(LR, LC))
    For k = 1 To LR
       If Rows(k).Hidden = False And Data(k, j) <> "" Then _
       curCnt = curCnt + 1
    Next k
    Columns(j).Hidden = curCnt < 2
Next j

Application.ScreenUpdating = True

End Sub
Sub-HideCols()
Dim LC为整数,j为整数
Dim LR为整数,curCnt为整数
将k变为整数
作为变量的Dim数据
Application.ScreenUpdating=False
LC=单元格(3,Columns.Count).End(xlToLeft).Column
对于j=3至LC
LR=单元格(Rows.Count,j).结束(xlUp).行
curCnt=0
数据=范围(单元格(1,1),单元格(LR,LC))
对于k=1至LR
如果行(k).Hidden=False且数据(k,j)“,则_
curCnt=curCnt+1
下一个k
列(j).隐藏=电流<2
下一个j
Application.ScreenUpdating=True
端接头

以下是如何隐藏黑色单元格的所有行和列。我相信您可以根据需要进行修改

Sub hide_cell()

    Dim Rng As Range
    Dim MyCell As Range
    Set Rng = Range("A2:d10")
    For Each MyCell In Rng
        If MyCell.Interior.ColorIndex = 1 Then
            MyCell.EntireRow.Hidden = True
            MyCell.EntireColumn.Hidden = True
        End If
    Next MyCell
End Sub

如果有具有指定颜色的单元格,是否要隐藏该单元格所在的行或列(或两者)?如果有意义,我不想隐藏它们。我想隐藏任何没有指定格式的内容;但是是的,行和列@BruceWayne我刚刚录制了一个按颜色过滤的宏,得到了这个:
ActiveSheet.ListObjects(“Table1”).Range.AutoFilter字段:=5,Criteria1:=RGB(255,255,0),Operator:=xlFilterCellColor
也许你也可以录制一个宏,并轻松获得你想要的代码?