Excel中使用VBA筛选数据并将结果另存为新的EXCEL文件


 今天同学问我如题的问题。简单查了一下网上的代码。实现了要求,特留记一下。

需求:

       某EXCEL文件中有两个(其实是多个,但需要用的就两个)如下图:

 

同学的领导要求,根据选中的名称显示出这个单位的所有手机号码(为保护隐私用*号替换了)及相关信息。说白了就是表(正常 集团 (2))里的数据太多,他想要根据关面列出的名查看其具体包含哪些号等信息。

解决方案:

先将“正常集团(2)表设置筛选。

然后在10个**的表的SHEET选项卡上点击右键-》查看代码,写下如下代码

代码如下:

 

具体代码什么意思就不用我解释了吧!

由于后来她又改变主意了,不需要另存成文件了,所以另存文件的部分被我注释掉了!需要用的朋友把注释去掉就可以了!另存储路径需要先创建。我当时没有想那么多,而且他也不需要那么复杂就没有包含创建目录以及判断文件是否存在一类的。如果有这方面的需求可以根据情况自己扩展一下就行了!

 

----------------

补充:

在写代码时一直想找到多行注释按钮,但一直也没有找到。VBA用的也不多,在编辑器中类似/* */或{ }这样的方法行不行。对此耿耿于怀,刚才在网上查找了一下。终于找到答案了,原来自己太大意了。

在工具栏上右键点击-》编辑 会弹出一个工具栏。其中就包括注释及取消注释的按钮。

有人一直说看不到,不知道是看不到代码还是图片。如是代码,请在代码那行上有个加号,点开即可:下边把代码附上!

[code=vb]
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
            If Target.Column = 1 And Target.Count = 1 Then  
                    Calc (Target.Text)  
            End If  
    End Sub  
    Function Calc(ByVal SelectName As String)  
        Sheets(3).Select  
        ActiveSheet.Range("$B$1:$B$60448").AutoFilter Field:=1, Criteria1:=SelectName  
        'Sheets(3).Cells.Select  
        'Application.CutCopyMode = False  
        'Selection.Copy  
        'Sheets.Add After:=Sheets(Sheets.Count)  
        'Sheets(Sheets.Count).Select  
        'Cells.Select  
        'ActiveSheet.Paste  
        'Sheets(Sheets.Count).Name = SelectName  
        'Sheets(2).Select  
        'Range("A2").Select  
        'Workbooks.Add  
        'ActiveSheet.Paste  
        'Application.CutCopyMode = False  
        'ActiveWorkbook.SaveAs Filename:= _  
        '    "D:/DHList/" + SelectName + ".xls", FileFormat:= _  
        '    xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _  
        '    , CreateBackup:=False  
        'ActiveWindow.Close  
       ' Windows("政企全网VPN用户23日.xls").Activate  
       ' Sheets(2).Select  
       ' Range("B1").Select  
    End Function  
[/code]

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值