如何在excel工作表中隐藏所有值都小于一个数字的列?
我是excel公式的新手。我有一张excel表格,它有100行100列。列的值从0到20不等。如果列的所有值都小于给定的数字,我想隐藏这些列。或者,以不同的方式,我只想显示那些任何值都大于给定数字的列。将下面的代码放入工作簿中的新模块中。如果你不知道如何做到这一点,那么谷歌“如何在我的Excel VBA项目中创建一个新模块”如何在excel工作表中隐藏所有值都小于一个数字的列?,excel,excel-formula,Excel,Excel Formula,我是excel公式的新手。我有一张excel表格,它有100行100列。列的值从0到20不等。如果列的所有值都小于给定的数字,我想隐藏这些列。或者,以不同的方式,我只想显示那些任何值都大于给定数字的列。将下面的代码放入工作簿中的新模块中。如果你不知道如何做到这一点,那么谷歌“如何在我的Excel VBA项目中创建一个新模块” 公共子HideColumnsBasedOnCriteria() 变暗RNG单元作为范围,lngCol作为长度,LNGGROW作为长度,lngThreshold作为长度 将阈
公共子HideColumnsBasedOnCriteria()
变暗RNG单元作为范围,lngCol作为长度,LNGGROW作为长度,lngThreshold作为长度
将阈值设置为布尔值
设置rngCells=选择
lngThreshold=InputBox(“输入阈值金额…”,“阈值金额”,10)
Application.EnableEvents=False
Application.ScreenUpdating=False
使用rngCells
对于lngCol=1到.Columns.Count
bBlowThreshold=True
对于lngRow=1到.Rows.Count
如果.Cells(lngRow,lngCol)>=lngThreshold,则
bBlowThreshold=False
退出
如果结束
下一个
If.Columns(lngCol).Hidden阈值然后
.Columns(lngCol).Hidden=bBelowThreshold
如果结束
下一个
以
Application.ScreenUpdating=True
Application.EnableEvents=True
端接头
。。。然后选择单元格(不是列,而是如下所示的数据范围),然后运行宏
如果你不知道如何运行宏,那么谷歌“如何在Excel中执行宏”。如果你没有开发者标签,谷歌“我如何使开发者标签在Excel中可见”
数字小于您提供的列将被隐藏
这是没有错误检查等,但它会让你去。如果需要从工作表上的单元格中获取阈值量,这是一个简单的加法
我希望它对您有用。您所问的是不可能的:Excel公式的结果是一段文本的数字,而不是用于隐藏单元格或单元格范围的命令 这里有一个有趣的问题,那就是条件格式:它不允许您隐藏整个列,但是它可以,如名称所述,根据某些条件修改单元格的格式。作为格式设置,您可以选择单元格的背景颜色
这里的难点似乎是:如何检查整列的值是否小于一个值?这可以用一个简单的想法来检查:如果每个值的最大值都小于一个特定值,那么每个值都小于一个特定值。这里有一个基于公式的条件格式:只需基于公式
=MAX(F1:F100)VBA是选项吗?否。只有excelVBA(Visual Basic for Applications)是excel的一部分。它允许您在Excel中使用后台代码,但我不知道VBA。幸运的是,如果没有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