Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3274|回复: 1

[已解决]数据筛选后导出生成新工作簿

[复制链接]
发表于 2014-3-20 09:17 | 显示全部楼层 |阅读模式
本帖最后由 cyj153 于 2014-3-20 10:06 编辑

筛选导出生成新工作簿.rar (39.77 KB, 下载次数: 14)
发表于 2014-3-20 09:37 | 显示全部楼层    本楼为最佳答案   
  1. Private Sub CommandButton1_Click()
  2.     Dim Conn As Object, Rst As Object
  3.     Dim strConn As String, SQL As String
  4.     Dim i As Integer, PathStr As String
  5.     Set Conn = CreateObject("ADODB.Connection")
  6.     Set Rst = CreateObject("ADODB.Recordset")
  7.     PathStr = ThisWorkbook.FullName
  8.     Select Case Application.Version * 1
  9.     Case Is <= 11
  10.         strConn = "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=excel 8.0;Data source=" & PathStr
  11.     Case Is >= 12
  12.         strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathStr & ";Extended Properties=""Excel 12.0;HDR=YES"";"""
  13.     End Select

  14.     Conn.Open strConn
  15.    
  16.     SQL = "select * from [3$A:L] where 类别='" & ComboBox1.Value & "'"
  17.     Set Rst = Conn.Execute(SQL)
  18.     Application.ScreenUpdating = False
  19.     Workbooks.Add
  20.    
  21.     With ActiveSheet
  22.         For i = 0 To Rst.Fields.Count - 1
  23.             .Cells(1, i + 1) = Rst.Fields(i).Name
  24.         Next i
  25.         .Range("A2").CopyFromRecordset Rst
  26.         .Cells.EntireColumn.AutoFit
  27.     End With
  28.     ActiveWorkbook.SaveAs ThisWorkbook.Path & "" & ComboBox1.Value
  29.     ActiveWorkbook.Close
  30.     Application.ScreenUpdating = True
  31.     Rst.Close
  32.     Conn.Close
  33.     Set Conn = Nothing
  34.     Set Rst = Nothing
  35. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-23 22:47 , Processed in 0.242226 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表