今天帮同事解决了个大概这样的问题。因为他的数据量太大了,有20万,直接用excel的筛选为0然后手动变色,提示错误。必须得分开搞几次。我后来写了段vba代码给他。为方便起见,只选择其中少量 源数据大概如何所示: 我们要C列为0的所在行变成红色。Alt+F11进入vba编辑器,插入模块,输入我使用的代码如下: Sub 变色() Dim i&, k&, arr '定义i,k,arr数组 k = [a200000].End(xlUp).Row '判断a列的最后一个不为空的单元格 arr = Sheets("sheet1").Range("a1:e" & k) '把区域赋值给数组 For i = UBound(arr) To 1 Step -1 'ubound代表arr的下界 If arr(i, 3) = 0 Then '判断第3列的每个值 'Rows(i).Interior.ColorIndex = 3'令该行变红色 Range("a" & i, "f" & i).Interior.ColorIndex = 3 '令该行的a到e区域单元格变红 End If Next End Sub 有人觉得这么简单的问题,用vba坑爹了,没必要。当然数据少时,vba用处不大。数据量很大时,基础操作和函数都失效,就轮到vba上场了。Vba代码的意义在于,解放你的双手,把重复滴有规律滴事让给代码来完成,提高工作效率,减少无效的人工。人应该是做机器所不能替代的事情才是。 |