您的位置首页生活百科

excel查询数据

excel查询数据

的有关信息介绍如下:

excel查询数据

大数据量查询,筛选很费时费力,今天写了一个简单的excel查询功能,供大家参考使用

创建带胡宏的excel

新建excel,单击左上角“office按纽”→“另存为”→“启用宏的excel工作薄(M)”;保存后,关闭当前excel,然后打开有“宏”的excel(另存为的excel)

附:有宏的excel工作薄,图标有个大大的感叹号

接下来要打开宏编辑器,两种方法任选

(1)单击“开发工具”菜单→“visual Basic”

(2)快捷键“alt+f11”

然后会弹出一个新的页面,所有的代码都在这个窗口进行编写

然后引入相关库

在宏窗口中单击“工具”菜单→“引用”项,然后按下图选择要添加的库,“确定”完成操作

在“sheet1”表格中,插入如下数据(如图),然后将“sheet1”表更名为“成绩表”(这个表名要在编码中用,如果是别的名称,只要改下代码即可)

做完第一步切换到“sheet2”表中,按下图录入数据,并将“sheet2”表更名为“查询表”

在“查询表(即sheet2)”中插入一个查询按钮

(1)单击“开发工具”菜单→“插入”→“activex控件”下的“命令按钮”;

(2)接下来鼠标的光标会变成一个小“十”字形状,这时你按住鼠标,往右下角方向拖动后就会画出一个新的命令按钮了;

(3)右键命令按钮→“命令按钮 对象”→“编辑”,可以更改按钮名称,这里更改为“查询”

(4)现在的的“查询”按钮,处在“设计模式”,我们要将它变成应用模式,点再次点击“设计模式”后,就可以了

(1)进入宏编辑器,按“alt+f11”快捷键。

(2)双击左侧“sheet2(查询表)”,将如下代码粘贴至右侧

Private Sub CommandButton1_Click()

Dim cnn As New ADODB.Connection

Dim rs As New ADODB.Recordset

Dim strsql As String

' --连接数据库

cnn.Open "provider=Microsoft.Jet.Oledb.4.0;Extended Properties ='Excel 8.0';Data Source =" & ThisWorkbook.FullName

' --查询语句

strsql = "select 班级, 姓名, 语文, 数学, 英语 from [成绩表$] Where 1=1 "

If (Range("b1") <> "") Then strsql = strsql & "and 班级='" & Range("b1") & "'"

If (Range("d1") <> "") Then strsql = strsql & "and 姓名='" & Range("d1") & "'"

If (Range("f1") <> "") Then strsql = strsql & "and 语文>=" & Range("f1")

If (Range("f2") <> "") Then strsql = strsql & "and 语文<=" & Range("f2")

If (Range("h1") <> "") Then strsql = strsql & "and 数学>=" & Range("h1")

If (Range("h2") <> "") Then strsql = strsql & "and 数学<=" & Range("h2")

If (Range("j1") <> "") Then strsql = strsql & "and 英语>=" & Range("j1")

If (Range("j2") <> "") Then strsql = strsql & "and 英语<=" & Range("j2")

' --执行语句

Set rs = cnn.Execute(strsql)

' --清空表格范围

Range("a5:j65536").ClearContents

' --查询结果显示起始位置

Range("a5").CopyFromRecordset rs

rs.Close

Set rs = Nothing

cnn.Close

Set cnn = Nothing

End Sub

最后,验收成果的时刻到了

回到excel页面,输入查询条件,点击“查询”按钮。

搞定,收工