Dim i, j, k As Integer
k = 1 'k赋初值
i = InputBox("please input the item num:") '给出总行数信息
For j = 1 To i '循环判断
If Sheets("sheet1")Cells(j, 5)Text = 1 Then '如果第5列的值等于1
Sheets("sheet1")Select
Range(Cells(j, 1), Cells(j, 5))Select '选中表1中前五列数据
SelectionCopy '复制
Sheets("Sheet2")Select '选中表2
Range(Cells(k, 1), Cells(k, 5))Select '选中表2的前5列
ActiveSheetPaste Link:=True '粘贴链接
k = k + 1 '表2行号增加
End If
Next
ApplicationCutCopyMode = False '退出复制粘贴模式 这句和下面的语句为辅助语句可删
Cells(1, 1)Select需输入总行数
假设RowCount是行数变量,Col为筛选结果所在的列:
RowCount = 2 ' 将筛选结果的第一行作为RowCount的初始值,这里假设为2
' 循环直至单元格为空,这时得到的RowCount的值就是最后一个筛选结果所在的行。
' RowCount - 初始行(如上面假设的2)+ 1就是所要的行数。
Do Until Cells(RowCount, Col) = ""
RowCount = RowCount + 1
Loop
行数 = RowCount -2 + 1
不知是不是楼主需要的。
Filter函数实现数组筛选: 数组的筛选就是根据一定的条件,从数组中筛选符合条件的值,组成一个新的数组,实现数组筛选的VBA函数是: Filter函数 用法:Filter(数组, 筛选的字符, 是否包含) Sub DD()arr1 = VBAFilter(arr, "A", True) '筛选所有含A的数值组成一个新数组 arr2 = VBAFilter(arr, "A", False) '筛选所有不含A的数值组成一个新数组 MsgBox Join(arr2, ",") '查看筛选的结果End Sub遗憾的是函数只能进行模糊筛选,不能精确匹配。
Sub 记录筛选条件()
Const n = 2
Do
i = i + 1
If Cells(i, 1)EntireRowHidden = False Then
K = K + 1
End If
Loop Until K = 2
Cells(1, "g") = Cells(1, "g") & "," & Cells(i, "a")
End Sub
将每次筛选条件,记录在G1单元格,用逗号分开。
第1行为标题,筛选条件在A列
以上就是关于VBA:如何对一列数字进行筛选全部的内容,包括:VBA:如何对一列数字进行筛选、请教高手,VBA 如何获取筛选后结果的行数求代码~、VBA数组如何筛选等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)