2017-03-08 35 views
0

我想要創建一個宏,當它激活時,將隱藏沒有格式化爲特定顏色的單元格的所有列和行。我修改了僅包含內容的列的類似子集,但這是另一個額外的步驟,我的大腦似乎無法在今天上午左右。作爲參考,這是我用來隱藏那些沒有內容的所有列: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.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 
+0

如果存在具有指定顏色的單元格,是否要隱藏它所在的行或列(或兩者)? – BruceWayne

+0

我想不要隱藏它們,如果這是有道理的。我希望沒有指定格式的任何內容被隱藏;但是,是的,行和列@BruceWayne –

+0

我剛剛記錄了一個按顏色過濾的宏,並得到了:ActiveSheet.ListObjects(「Table1」)。Range.AutoFilter Field:= 5,Criteria1:= RGB(255,255,0 ),Operator:= xlFilterCellColor'也許你還可以記錄一個宏,並輕鬆獲得你想要的代碼? – Ralph

回答

1

這裏是如何隱藏的黑色單元的所有行和列。我相信你可以修改以適應你的需求。

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 
相關問題