cro*_*lee 3 mysql sql excel vba
我有一个大的excel表,看起来像这样:
date | name | age | type
10/10/2012 | James | 12 | man
11/10/2012 | Jane | 50 | woman
12/10/2012 | Freddy | 2 | dog
13/10/2012 | Bob | 23 | man
14/10/2012 | Mary | 34 | woman
Run Code Online (Sandbox Code Playgroud)
我想要做的是创建一个新的,动态生成的表格,显示所有人.
在SQL中,这将是一个同步:"SELECT * FROM table WHERE type='men'".我之前从未在excel中使用过VBA(因为我是一名经验丰富的PHP/Javascript程序员,并且在MS Access中使用了VBA)所以我正在寻找初学者的指示来帮助我入门.也许有人可以推荐一个简单的教程或博客文章来完成我需要做的事情?
它花了我一天的大部分时间,但我已经想到了这一点.这是代码:
Sub Excel_QueryTable()
Sheet2.Cells.ClearContents
Dim oCn As ADODB.Connection
Dim oRS As ADODB.Recordset
Dim ConnString As String
Dim SQL As String
Dim qt As QueryTable
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\t.xlsm;Extended Properties=Excel 8.0;Persist Security Info=False"
Set oCn = New ADODB.Connection
oCn.ConnectionString = ConnString
oCn.Open
SQL = "Select * from [Sheet1$] WHERE type='man'"
Set oRS = New ADODB.Recordset
oRS.Source = SQL
oRS.ActiveConnection = oCn
oRS.Open
Set qt = Worksheets(2).QueryTables.Add(Connection:=oRS, _
Destination:=Range("A1"))
qt.Refresh
If oRS.State <> adStateClosed Then
oRS.Close
End If
If Not oRS Is Nothing Then Set oRS = Nothing
If Not oCn Is Nothing Then Set oCn = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
要使这个工作在您自己的工作簿上,您需要更改Data Source您正在使用的文件名的路径.
[Sheet1$]在查询中是您选择的工作表的名称(留在$).
Worksheets(2) 是要创建动态表的工作表编号.
此外,您需要Microsoft Active X Data Objects通过转到Tools>Referencesexcel中的VBA编辑器来启用其中一个库.
| 归档时间: |
|
| 查看次数: |
8983 次 |
| 最近记录: |