excelperfect
我们经常会看到一些工作表,含有隐藏的行或列。而这些隐藏行或列中,往往存储着一些不想让用户看到的数据。这些数据可以让Excel或者VBA程序使用,方便完成一些高级操作,例如检查用户输入是否存在错误、存储数据有效性列表项、计算的中间值、特殊的常量,等等。
通常,我们会将工作表的前几行或前几列作为隐藏行或列,称之为程序行或程序列。
示例
如下图1所示,工作表的列A和列B是隐藏列。
图1
其中:
1.在列A中,存放着设置数据有效性的列表项,这是一个级联列表,也就是说,在列D中的列表项为类别中的“水果、蔬菜”,在列E中的列表项根据列D中的数据显示水果列表“苹果、香蕉、桔子、梨”或者蔬菜列表“西兰花、卷心菜、胡萝卜、生菜”。
2.在列B的单元格B3中,输入公式:
=IF(ISBLANK(E3),FALSE,ISERROR(MATCH(E3,INDIRECT(D3),0)))
下拉至单元格B12。其意思是,如果公式对应的列E中的单元格为空,则返回FALSE。否则,如果公式对应的列E中单元格的值不是列D单元格引用的数据范围中的值,则MATCH函数返回#N/A错误,ISERROR函数值为TRUE,公式的值返回TRUE;否则,返回FALSE。
3.选择单元格区域D3:E12,设置条件格式如下图2所示。
图2
也就是说,当单元格区域D3:E12所在单元格对应的列B中的单元格的值为True时,应用格式,即设置单元格背景色为红色,否则,正常显示。
这样,当类别与项不一致时,通过单元格背景色提示用户这行输入有错误,就实现了提示效果。并且一旦用户改正错误,红色背景就会消失,恢复正常状态。
小结
上面的示例利用隐藏区域(程序列):
1.实现了数据有效性级联列表项目的存储。
2.判断数据是否满足工作表中设置的规划,利用条件格式设置进行提示,从而实现了对用户输入数据的自动检查。