我是excel公式的新手。我有一个excel表格,可以说100行和100列。列的值在0到20之间。如果列的所有值都小于给定的数字,我想隐藏列。或以其他方式,我只想显示那些值大于给定数字的列。
答案 0 :(得分:1)
将以下代码放入工作簿中的新模块。如果您不确定该怎么做,那么Google“ 如何在我的Excel VBA项目中创建一个新模块” ...
Public Sub HideColumnsBasedOnCriteria()
Dim rngCells As Range, lngCol As Long, lngRow As Long, lngThreshold As Long
Dim bBelowThreshold As Boolean
Set rngCells = Selection
lngThreshold = InputBox("Enter a threshold amount ...", "Threshold Amount", 10)
Application.EnableEvents = False
Application.ScreenUpdating = False
With rngCells
For lngCol = 1 To .Columns.Count
bBelowThreshold = True
For lngRow = 1 To .Rows.Count
If .Cells(lngRow, lngCol) >= lngThreshold Then
bBelowThreshold = False
Exit For
End If
Next
If .Columns(lngCol).Hidden <> bBelowThreshold Then
.Columns(lngCol).Hidden = bBelowThreshold
End If
Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
...然后选择您的单元格(不是列,而是如下所示的数据范围),然后运行宏。
如果您不知道如何运行宏,请使用Google“ 如何在Excel中执行宏”。如果您没有开发人员标签,请点击Google“ 如何在Excel中显示开发人员标签”。
具有小于您提供的数字的列将被隐藏。
这没有错误检查之类的方法,但是它可以助您一臂之力。如果您需要从工作表上的一个单元格中获取阈值,那很容易。
我希望它对您有用。
答案 1 :(得分:0)
您要问的是不可能的:Excel公式的结果是一段文本,而不是隐藏一个单元格或一系列单元格的命令。
有一个有趣的事情,那就是条件格式设置:它不允许您隐藏整个列,但是,正如名称所提到的,它可以根据某些条件修改单元格的格式。作为一种格式,您可以选择单元格的背景颜色。
这里最困难的部分似乎是:如何检查整个列的值是否小于一个值?可以使用一个简单的想法进行检查:如果每个值的最大值小于一个特定值,则每个值都小于一个特定值,在此您可以根据公式进行条件格式设置:只需将其基于公式{ {1}},将这种条件格式应用于列=MAX(F1:F100)<=5
的每个单元格,并相应地应用背景色。