|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本人是VBA初学者,在最近一段时间的学习过程中发现在VBA中操作数组不甚方便。比如我要下表中的内容写入数组Arr:
- Arr=range(activesheet.cells(1,1),activesheet.cells(6,5)).value
复制代码
没问题,速度很快,语句也很简练。但是如果我要在Arr中筛选符合某些条件的条目写入数组Brr,比如职级是部门负责人的员工,问题就来了:以我目前的学习水平,只能想到这种方案:
- Dim i As Long, j As Long, m As Long
- j = 0
- For i = 1 To UBound(arr)
- If arr(i, 4) = "部门负责人" Then
- j = j + 1
- End If
- Next i
- ReDim brr(1 To j, 1 To 5)
- j = 1
- For i = 1 To UBound(arr)
- If arr(i, 4) = "部门负责人" Then
- For m = 1 To 5
- brr(j, m) = arr(i, m)
- Next m
- j = j + 1
- End If
- Next i
复制代码 好繁琐!主要是事先不知道符合条件的条目数量,所以无法预先定义Brr的上标。当然我也知道可用Redim Preserve保留原数据扩展维度,但只能扩展最后一维十分不便。请问各位高手有更好的方法吗?欢迎交流~
|
|