搜索
写经验 领红包

excel怎么使用vba(别怕excelvba其实很简单)

导语:办公小技巧:如何用EXCEL VBA SQL语句实现一键查询

Excel经常用的功能大部分在软件界面体现了,还有一些不常用的在菜单里面也能找到。VBA宏代码相对Excel公式来说,用的频率要少些,但是VBA有他特殊的用途。

下面说一下VBA和SQL语句结合使用怎么实现表格数据一键查询,【注:SQL全称是结构化查询语言,是一种数据库查询和程序设计语言,对这方面感兴趣的朋友可以自己了解一下。】

举个例子:用EXCEL VBA SQL语句查询总成绩大于290分的学生

一、正常的操作步骤是:

1、用Excel打开表格,点击插入——数据透视图

EXCEL VBA SQL语句实现表格数据的一键查询

2、在数据透视图界面,选择行标签字段和求和项字段

EXCEL VBA SQL语句实现表格数据的一键查询

EXCEL VBA SQL语句实现表格数据的一键查询

3、把行标签和求和项表格数据进行排序,选出成绩大于290的记录

用数据透视图功能操作很简便,除此之外用分类汇总功能也可以实现,只不过前者更方便些。

二、EXCEL VBA SQL语句实现表格数据的一键查询

1、用excel打开表格,按alt+F11打开VBA工程界面,在个人工作簿里新建模块,在模块的代码区域输入下面的代码

EXCEL VBA SQL语句实现表格数据的一键查询

2、根据实际需要在SQL变量区域输入自己想要的查询代码,保存,F5运行,注意[表名$]这种写法

EXCEL VBA SQL语句实现表格数据的一键查询

以上是用Excel VBA SQL语句实现了表格查询的一键自动化操作(按ALT+F8),在规则不经常变动的情况下使用很实用,以下是代码供复制粘贴。

Sub SQL查询()

Dim cnn As Object, rs As Object, SQL As String

Set cnn = CreateObject("adodb.connection") '创建数据库连接

cnn.Open "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ActiveWorkbook.FullName

Set rs = CreateObject("adodb.recordset") '创建一个数据集

SQL = "select 姓名,sum(成绩) from [原始数据$] group by 姓名 HAVING sum(成绩)>290" '设置SQL查询语句

Set rs = cnn.Execute(SQL) '执行查询

ActiveWorkbook.Worksheets(2).Cells.ClearContents

Dim i As Integer

For i = 1 To rs.Fields.Count

ActiveWorkbook.Worksheets(2).Cells(1, i) = rs.Fields(i - 1).Name '填写标题到表2

Next

ActiveWorkbook.Worksheets(2).Range("a2").CopyFromRecordset rs '复制记录集到表2

rs.Close

Set rs = Nothing

cnn.Close

Set cnn = Nothing

End Sub

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小馨创作整理编辑!