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
也许你也可以录制一个宏,并轻松获得你想要的代码?