excel表里的换行(利用ListView控件实现分页显示效果,vba编程精华)

wufei123 发布于 2023-11-15 阅读(546)

分页显示在网页制作中是一件十分普遍的事情,因为在浏览一些页面的时候总不会都显示在一个页面里。同样,在Excel工人表中,也会有分页的一中方法,只不过在表中以隐藏方式来实现分页。

本节主要介绍内容为在vba窗体中实现分页显示数据表其中,运用到许多知识,包括对工作表SQL查询,以及ListView控件的添加这些在Excel初级应用中,通常不会用到,当然也没有必要用但是要想做到自由控制数据,那就是一件必然要学会的内容。

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

图中显示一出一个工作表的数据内容,下面有一些按钮,可以实现数据表上下翻页功能这就是说,不需要把所有的工作记录都显示出来,可以一页页地翻看,如果有几百页,那么查找起来还是有一些便捷性的下面重点看一下代码:。

Private Sub AddListView(Lobj As Object, rsPage As Integer)Dim conn As ObjectDim rs As ObjectDim StrPath As StringDim StrSql As StringDim i As Integer, j As IntegerSet conn = CreateObject("ADODB.Connection")新建连接对象Set rs = CreateObject("ADODB.RecordSet")新建记录对象StrPath = ThisWorkbook.FullNameconn.Open "Provider=Microsoft.ACE.OLEDB.12.0;"&"Extended Properties=Excel 12.0;"&"Data Source="& StrPath打开连接对象StrSql ="SElECT * FROM ["& xSheet &"$]"查询工作表语句rs.Open StrSql, conn,1,1rs.pagesize =20设置每页显示记录数rs.absolutepage = rsPage 设置当前页数Lobj.ColumnHeaders.ClearFor i =0 To rs.Fields.Count -1Lobj.ColumnHeaders.Add ,, rs.Fields(i).NameNext iWith Lobj.ListItems.ClearFor i =1 To rs.pagesize rs.RecordCountIf rs.EOF Then Exit For.ListItems.Add ,, rs.Fields(0).ValueFor j =1 To rs.Fields.Count -1If VBA.Len(rs.Fields(j).Value)<>0 Then.ListItems(i).SubItems(j)= rs.Fields(j).Value添加ListView数据End IfNext jrs.movenext 下一记录Next iEnd Withrs.Closeconn.CloseSet rs = NothingSet conn = NothingEnd Sub

代码中应用了Recordset 对象,ADO Recordset 对象用于容纳一个来自数据库表的记录集,示例中用来存放工作表的记录集还有一个Connection对象,ADO Connection 对象用于创建一个到达某个数据源的开放连接,也就是和数据表建立链接的对象。

至于这两个对象是如何工作的,并不需要了解,因为它已经做好一切,只需要合理地运用对象的方法即可以后会专门来介绍关于ADO对象的使用方法按钮代码如下所示:Private Sub 第一页()Dim x As IntegerIf Not VBA.IsNumeric(Me.TextBox1.Value) Then Exit Subx = Me.TextBox1.ValueIf x =1 ThenMsgBox "已经是第一页", vbInformation,"提示"Exit SubElseAddListView Me.ListView1,1 刷新ListViewMe.TextBox1.Value =1End IfEnd SubPrivate Sub 下一页()Dim x As IntegerIf Not VBA.IsNumeric(Me.TextBox1.Value) Then Exit Subx = Me.TextBox1.ValueIf x =1 ThenMsgBox "已经是第一页", vbInformation,"提示"Exit SubEnd Ifx = x -1If x >=1 And x <= xCount ThenAddListView Me.ListView1, x 刷新ListViewMe.TextBox1.Value = xElseMe.TextBox1.Value =1End IfEnd Sub。

实现上下翻页功能之后,就不用再为一个工表,全部加载到LIstView页烦恼了。利用工具实现数据的有规律组合,这就是我们要达到的最简单的目的。欢迎关注、收藏---END---

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。