改一下即可
Sub 筛选合单()If ActiveSheetOLEObjects("TextBox120")ObjectValue <> "" Then
ActiveSheetListObjects("表4_236736")RangeAutoFilter Field:=11, Criteria1:="" & ActiveSheetOLEObjects("TextBox120")ObjectValue & ""
End If
End Sub
VBA中实现筛选一部分数据步骤如下:
1、我们打开Excel软件,选择一个区域,接下来就要筛选其中一班的数据。
2、接下来进入VBA编辑区域,我们先看一下如何选中某一行的区域。
3、另外我们还可以通过EntireColumn和EntireRow来选择行和列。
4、了解了上面的两个用法以后,我们就可以通过Range来选择一开始指定的区域了。
5、接下来我们就可以通过for each循环进行遍历选择区域查找需要的内容。
6、最后运行VBA程序我们就可以看到一班的数据都被筛选出来了。
看你完整代码。
下面代码测试正常:
Sub AAA()Dim region(1) As String
region(0) = "江苏"
region(1) = "北京"
If ActiveSheetAutoFilterMode = False Then ActiveSheetUsedRangeAutoFilter
SelectionAutoFilter Field:=7, Criteria1:=region(0)
End Sub
Sub test()
Dim i As Integer
Dim xCr(1 To 100) As String
Dim xStr As String
xStr = ActiveSheetName
xCr(1) = "AAA"
xCr(2) = "BBB"
xCr(3) = "CCC"
xCr(4) = "DDD"
'
Range("A1:H100")Select
For i = 1 To 30
SheetsAdd after:=Sheets(SheetsCount)
ActiveSheetName = "Sheet" & i + 3
Sheets(xStr)Select
SelectionAutoFilter
ActiveSheetRange("$A$1:$H$100")AutoFilter Field:=3, Criteria1:=xCr(i)
SelectionCopy Sheets("Sheet" & i + 3)Range("A1")
Next i
End Sub
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需输入总行数
以上就是关于excel VBA 通过文本框控件的值进行筛选查询全部的内容,包括:excel VBA 通过文本框控件的值进行筛选查询、VBA中如何实现筛选一部分数据、关于VBA AutoFilter 的Criteria1属性问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)