excel使用技巧大全案例分析:
通过办事处来查询要找的名字跟销售量。
方法:将三列数据写入数组ARR1,如果办事处等于G3中的值,将ARR1中的第2列和第3列的值写入新数组ARR2,然后从F5开始,重选与ARR2规格相同的区域,并将ARR2放入其中。
写代码前咱们先来学习两个VBA函数。
ubound:表示获取数组的最大下标
lbound: 表示获取数组的最小下标
ubound/lbound里面第2个参数,表示第几个维度,不写或写1表示返回第1个维度的最大或者最小下标。我们之前学过,用for next 循环时,to后面的值要通过对一列里面非空单元格行数计算,现在有了这个函数,所有都可以解决了。代码如下:Sub 筛选()Dim arr1, arr2, ts%, i%, n%Range("f5:g16").ClearContentsarr1 = Range("a2", [c2].End(xlDown))ts = Application.CountIf([a:a], [g3])ReDim arr2(1 To ts, 1 To 2)For i = 1 To UBound(arr1) If arr1(i, 1) = [g3].Value Then n = n 1 arr2(n, 1) = arr1(i, 2) arr2(n, 2) = arr1(i, 3) End IfNext[f5].Resize(ts, 2) = arr2End Sububound这个在以后我们会经常用的。
,