打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel之VBA常用功能应用篇:利用ListView控件实现分页显示效果

分页显示在网页制作中是一件十分普遍的事情,因为在浏览一些页面的时候总不会都显示在一个页面里。

同样,在Excel工人表中,也会有分页的一中方法,只不过在表中以隐藏方式来实现分页。

本节主要介绍内容为在vba窗体中实现分页显示数据表。

其中,运用到许多知识,包括对工作表SQL查询,以及ListView控件的添加。

这些在Excel初级应用中,通常不会用到,当然也没有必要用。

但是要想做到自由控制数据,那就是一件必然要学会的内容。

如果,有一些数据库操作技能,那么对本节的理解,还是十分容易的。

下图为显示效果:

图中显示一出一个工作表的数据内容,下面有一些按钮,可以实现数据表上下翻页功能。

这就是说,不需要把所有的工作记录都显示出来,可以一页页地翻看,如果有几百页,那么查找起来还是有一些便捷性的。

下面重点看一下代码:

Private Sub AddListView(Lobj As Object, rsPage As Integer)

Dim conn As Object

Dim rs As Object

Dim StrPath As String

Dim StrSql As String

Dim i As Integer, j As Integer

Set conn = CreateObject('ADODB.Connection')'新建连接对象

Set rs = CreateObject('ADODB.RecordSet')'新建记录对象

StrPath = ThisWorkbook.FullName

conn.Open 'Provider=Microsoft.ACE.OLEDB.12.0;' & 'Extended Properties=Excel 12.0;' _

& 'Data Source=' & StrPath'打开连接对象

StrSql = 'SElECT * FROM [' & xSheet & '$]''查询工作表语句

rs.Open StrSql, conn, 1, 1

rs.pagesize = 20 '设置每页显示记录数

rs.absolutepage = rsPage '设置当前页数

Lobj.ColumnHeaders.Clear

For i = 0 To rs.Fields.Count - 1

Lobj.ColumnHeaders.Add , , rs.Fields(i).Name

Next i

With Lobj

.ListItems.Clear

For i = 1 To rs.pagesize 'rs.RecordCount

If rs.EOF Then Exit For

.ListItems.Add , , rs.Fields(0).Value

For j = 1 To rs.Fields.Count - 1

If VBA.Len(rs.Fields(j).Value) <> 0 Then

.ListItems(i).SubItems(j) = rs.Fields(j).Value'添加ListView数据

End If

Next j

rs.movenext '下一记录

Next i

End With

rs.Close

conn.Close

Set rs = Nothing

Set conn = Nothing

End Sub

代码中应用了Recordset 对象,ADO Recordset 对象用于容纳一个来自数据库表的记录集,示例中用来存放工作表的记录集。

还有一个Connection对象,ADO Connection 对象用于创建一个到达某个数据源的开放连接,也就是和数据表建立链接的对象。

至于这两个对象是如何工作的,并不需要了解,因为它已经做好一切,只需要合理地运用对象的方法即可。

以后会专门来介绍关于ADO对象的使用方法。

按钮代码如下所示:

Private Sub 第一页()

Dim x As Integer

If Not VBA.IsNumeric(Me.TextBox1.Value) Then Exit Sub

x = Me.TextBox1.Value

If x = 1 Then

MsgBox '已经是第一页', vbInformation, '提示'

Exit Sub

Else

AddListView Me.ListView1, 1 '刷新ListView

Me.TextBox1.Value = 1

End If

End Sub

Private Sub 下一页()

Dim x As Integer

If Not VBA.IsNumeric(Me.TextBox1.Value) Then Exit Sub

x = Me.TextBox1.Value

If x = 1 Then

MsgBox '已经是第一页', vbInformation, '提示'

Exit Sub

End If

x = x - 1

If x >= 1 And x <= xCount Then

AddListView Me.ListView1, x '刷新ListView

Me.TextBox1.Value = x

Else

Me.TextBox1.Value = 1

End If

End Sub

实现上下翻页功能之后,就不用再为一个工表,全部加载到LIstView页烦恼了。

利用工具实现数据的有规律组合,这就是我们要达到的最简单的目的。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA实现EXCEL多表格多条件查询
Excel VBA教程
VBA Excel登陆窗体 补充
Excel之VBA常用功能应用篇:导入导出工作表
EXCEL自动分页小计的VBA宏代码
VB调用Excel简化表格处理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服