下面的代码将搜索一行及其关联的列。 对于第7行,如果它是“N”或“TR”,并且如果所有条目在第12行下面都是空白,则代码将隐藏整个列。
但是,我仍需要一些帮助以获得帮助!
如果第7行中有“N”或“TR”。如果是在任何单元格中写入的内容(而不是单独留下),我可以突出显示其关联第7行的单元格为黄色?
如果第7行中有“Y”,如果有任何空单元格,我可以在第7行中以黄色突出显示其关联的单元格吗?
非常感谢你!特别感谢KazJaw上一篇关于simular问题的帖子
Sub checkandhide()
Dim r As Range
Dim Cell As Range
Set r = Range("A7", Cells(7, Columns.Count).End(xlToLeft))
For Each Cell In r
If Cell.Value = "N" Or Cell.Value = "TR" Then
If Cells(Rows.Count, Cell.Column).End(xlUp).Row < 13 Then
Cell.EntireColumn.Hidden = True
End If
End If
Next
End Sub
答案 0 :(得分:0)
这里有一个改进的代码版本(虽然我可能需要进一步澄清......请参阅下文)。
Sub checkandhide()
Dim r as Range, Cell As Range, curRange As Range
Set r = Range("A7", Cells(7, Columns.Count).End(xlToLeft))
For Each Cell In r
Set curRange = Range(Cells(13, Cell.Column), Cells(Rows.Count, Cell.Column)) 'Range from row 13 until last row in the given column
If Cell.Value = "N" Or Cell.Value = "TR" Then
If Application.CountBlank(curRange) = curRange.Cells.Count Then
Cell.EntireColumn.Hidden = True
Else
Cell.Interior.ColorIndex = 6 'http://dmcritchie.mvps.org/excel/colors.htm
End If
ElseIf Cell.Value = "Y" Then
If Application.CountBlank(curRange) > 0 Then
Cell.Interior.ColorIndex = 6 'http://dmcritchie.mvps.org/excel/colors.htm
End If
End If
Next
End Sub
我不确定我是否已正确理解您的说明,因此我将在此处描述此代码的确切作用;请注意任何不完全符合您要求的问题,以便我可以相应地更新代码:
它会查找范围r
中的所有单元格。
curRange
,curRange
定义为第13行到电子表格结尾之间的所有行。curRange
中的所有单元格都为空,则隐藏当前列。如果至少存在非空白单元格,则给定单元格的背景颜色将设置为黄色
b)如果当前单元格的值为Y并且{{1}}中至少有一个单元格不为空白,则背景单元格的背景颜色将设置为黄色。