用VBA怎样实现数据的高级筛选。

2024-05-12 20:55

1. 用VBA怎样实现数据的高级筛选。

1、准备数据
将原有的数据源下拉一行,然后在表格中复制原有数据源的标题行,粘贴在右边空白列


为什么要把原始数据下拉一行, 因为我们会在右边第2行输入条件数据,如果筛选的时候第2行被隐藏了,后面没法输入条件了。所以为了确保第2行不被隐藏,把原始数据下拉了一行处理。
2、录制宏
关键在于这一步,我们在开发工具中,点击录制宏
然后在数据选项卡下,点击高级筛选,在弹出的窗口中,原有列表数据,选择A2:D18
条件区域选择F1:I2,点击确定
在开发工具中,停止录制宏


这个时候可以按ALT+F11,可以看到在VBA里面,自动录制了一行代码:


这个代码不需要改动。
3、绑定录制的代码
我们在开发工具里面,插入一个按纽,自动绑定刚刚录制的宏,或者,右键按纽,绑定宏即可,我们在年份中输入1992,点击查询,结果就出来了。

操作方法原理:
即可以进行某个条件的查询数据,比如,输入想要搜索的关键词,员工小乔,点击查询即可查询出小乔的信息,
也可以进行多个条件满足的同时查询,比如查询市场部的男性,点击查询,也能得到结果。
上面高大上的查询系统,看起来需要很复杂的VBA编程才能实现,实际,只需要简单的一个录制宏就能轻轻松松的解决。

用VBA怎样实现数据的高级筛选。

2. VBA中如何实现筛选一部分数据

VBA中实现筛选一部分数据步骤如下:
1、我们打开Excel软件,选择一个区域,接下来就要筛选其中一班的数据。

2、接下来进入VBA编辑区域,我们先看一下如何选中某一行的区域。

3、另外我们还可以通过EntireColumn和EntireRow来选择行和列。

4、了解了上面的两个用法以后,我们就可以通过Range来选择一开始指定的区域了。

5、接下来我们就可以通过foreach循环进行遍历选择区域查找需要的内容。

6、最后运行VBA程序我们就可以看到一班的数据都被筛选出来了。

3. VBA如何实现条件筛选并根据筛选列的不同内容来填充其他列

首先从第二行开始遍历 I 列所有单元格
如果单元格内有红字
判断该行A列单元格的值,如果前三个字符是"lab"
然后我没看懂啥叫D列单元格的前三个字段?是指3个字符吗?比如chemical就给他变成che然后填入C列?

如果A列是Correct 或者 issue 该行C列单元格填home
然后我又没看懂啥叫第三步保持第一步的筛选条件?意思是只是提示一下第三步继续对红字I列所在行进行操作嘛?还是说需要让sheet只显示I列红字的行?我想知道代码运行过后是否只显示I列红字的行,还是说只注重结果,有无筛选不重要。
由于使用了ActiveSheet,所以使用的时候要注意保持需要操作的表单被激活。
I列红字,A列前三字符Lab,C列等于D列前三字符    


I列红字,A列等于Correct,C列等于home    
I列红字,A列等于Issue,C列等于home    
I列红字,A列空,G列等于No or Only,C列等于home    

    With ThisWorkbook.ActiveSheet
        For i = 2 To .UsedRange.Rows.Count
            If .Cells(i, 9).Font.ColorIndex = 3 Then
                If Left(CStr(.Cells(i, 1).Value), 3) = "Lab" Then
                    .Cells(i, 3).Value = Left(CStr(.Cells(i, 4).Value), 3)
                ElseIf CStr(.Cells(i, 1).Value) = "Correct" Or CStr(.Cells(i, 1).Value) = "Issue" Then
                    .Cells(i, 3).Value = "home"
                ElseIf CStr(.Cells(i, 1).Value) = "" And CStr(.Cells(i, 7).Value) = "No or Only" Then
                    .Cells(i, 3).Value = "home"
                End If
            End If
        Next i
    End With

VBA如何实现条件筛选并根据筛选列的不同内容来填充其他列

4. 使用VBA高级筛选分析数据的操作技巧展示


5. VBA满足条件设定情况下筛选数据的编程,请大神帮忙,小弟先谢了!

第一、建议数据统计区只显示想要统计的结果,多余的一些空值一是没必要显示,二是查找后写入也会影响速度;
第二、为什么不是统计符合条件区域条件的数据而是下一行呢?这样,无论是从excel的筛选还是sql的查询,都不利于查找;(如果A列是唯一标识且是数字递增,或者再添加一列ID为数字的话,这个查询也可实现)
第三、建议条件区域、和统计区域另放一个表,而数据区域单独用一个表。
 
你想要的结果用sql语句查询是最快的最简单的方法,数据区域需要加上跟条件区域、统计区域一样的标题栏。
如果这几点都可以接受的话,我倒是中以试试。

VBA满足条件设定情况下筛选数据的编程,请大神帮忙,小弟先谢了!

最新文章
热门文章
推荐阅读