我有一个很大的电子表格,其条件格式会在某些参数为true时将单元格变为红色(颜色255)。这部分工作正常。
我的问题是,如果第一列中有一个带有红色单元格的单元格,则我试图编写一个宏以隐藏整个列和其左侧的整个列。例如,如果N列中有一个红色单元格,它将隐藏N列和M列。将需要对所有“ I:HC”列运行此查询(就像我说的那样,它是一个巨大的电子表格。)将将此宏与“表单控制按钮”相关联,以便在激活该按钮时,这些列将隐藏。
任何想法都将不胜感激。
答案 0 :(得分:0)
请尝试像这样检查DisplayFormat
:
Private Sub HideRedFilledColumnPairs()
Dim ws As Worksheet
Dim lastRow As Long, lastColumn As Long
Dim r As Long, c As Long
Set ws = ActiveSheet
' get the used range
lastRow = ws.Cells.Find(What:="*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lastColumn = ws.Cells.Find(What:="*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
' loop your columns row by row
For c = ws.Range("I:I").Column To ws.Range("HC:HC").Column ' or To lastColumn
For r = 1 To lastRow
If ws.Cells(r, c).DisplayFormat.Interior.Color = vbRed Then
ws.Columns(c).EntireColumn.Hidden = True
ws.Columns(c - 1).EntireColumn.Hidden = True
Exit For ' take next column
End If
Next r
Next c
Set ws = Nothing
End Sub