(完整版)VBA实战系列(ListView控件)
                   
编辑整理:
尊敬的读者朋友们:
这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)VBA实战系列(ListView控件))的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为(完整版)VBA实战系列(ListView控件)的全部内容。

(完整版)VBA实战系列(ListView控件)
                   
编辑整理:张嬗雒老师
尊敬的读者朋友们:
vba排序函数sort用法这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望 (完
整版)VBA实战系列(ListView控件) 这篇文档能够给您的工作和学习带来便利。同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为 〈(完整版)VBA实战系列(ListView控件)〉 这篇文档的全部内容。

VBA项目实战__ListView控件应用
ListView控件是一款非常优秀的表格控件,被广泛应用于VBA项目.VBA使用者熟练地掌握此控件的用法,不仅能大大地增加自己学习VBA的兴趣,而且对实际工作也有很好的帮助。
一、Excel基础数据
二、实现效果
我们要通过VBA控件list view,实现如下图示效果
三、实现过程
(一)添加listview控件
1.打开VBE编辑器,新建窗体flist
2.添加listview控件。在工具箱中选择listview控件放入窗体。
      如工具箱中没有该控件,则应查注册MSCOMCTL.OCX  文件.我们可以按照以下方法进行注册:
1)将文件解压到“C:\WINDOWS\system32”(WindowsXP);
2)单击【开始】|【运行】命令,键入“regsvr32 C:\WINDOWS\system32 \MSCOMCTL.OCX  "(WindowsXP)”进行注册。
(二)添加代码
1。添加表头
Private Sub UserForm_Initialize()
    ListView1.ColumnHeaders。Add , , ”日期", 64, 0
    ListView1。ColumnHeaders.Add , , ”姓名”, 54, 2
    ListView1.ColumnHeaders。Add , , "性别", 42, 2
    ListView1.ColumnHeaders。Add , , "年龄”, 54, 2
    ListView1.ColumnHeaders.Add , , ””, 54, 2
    ListView1.ColumnHeaders。Add , , "电话", 99, 2
    ListView1.ColumnHeaders。Add , , "诊断", 54, 2
    ListView1.ColumnHeaders。Add , , "手术名称”, 86, 2
    ListView1。View = lvwReport    ’显示格式为报表格式
    ListView1。FullRowSelect = True    '允许整行选中
    ListView1.Gridlines = True    ’显示网格线
    ’ ListView1。Sorted = True '排序
End Sub
以上代码中ListView1.ColumnHeaders.Add , , ”日期”, 64, 0中的64代表该表头字段的宽度,0代表居左显示方式.
【应用技巧】
在实际应用中,如何确定列宽对初学者来说是一个难点,这里给大家提供一个确定列宽的实用方法。通常ListView控件加载的数据都存放在一张excel工作表中,我们先在工作表中调整好列宽,然后用ListView控件需要加载的excel表格的列宽作为相应ListView控件的列宽即可,求列宽可用以vba代码实现。个人具体做法见如下过程:
Sub 代码生成1__ListView标题头和列宽()
    Dim sh As Worksheet, i
    Set sh = Sheet1
    Debug。Print "Private Sub UserForm_Initialize()”
    For i = 1 To sh。Cells(1, Columns.Count)。End(xlToLeft).Column
        If i = 1 Then Debug.Print "  ListView1。ColumnHeaders。Add , ,"”” & sh。Cells(1, i) & ""”, " & Int(sh.Cells(1, i).Width) & ",0”
        If i 〉 1 Then Debug。Print ”  ListView1.ColumnHeaders.Add , ,""” & sh.Cells(1, i) & ”””, " & Int(sh。Cells(1, i)。Width) & ”,2"
    Next i
    Debug.Print "  ListView1。View = lvwReport" & Chr(10) & "  ListView1.FullRowSelect = True” & Chr(10) & "  ListView1.Gridlines = True" & Chr(10) & ”End Sub"
    '  ListView1。ColumnHeaders.Add , , "日期”, 64, 0  注释:对齐方式(0:左,1右,2居中),首先必须靠左,这是控件自身特性决定的
  End Sub
立即窗口显示debug。print结果,可以复制此代码,是不是简单快捷很多。
2.加载数据
Sub ListDisp()
    Dim cn As Object, rs As Object, sql As String, Itm
    Set cn = CreateObject(”ADODB.Connection”)                  ’连接数据库CreateObject("adodb。connection”)
    Set rs = CreateObject(”ADODB。Recordset")
    cn.Open ”provider=microsoft.jet.oledb。4。0;extended properties='excel 8.0;HDR=yes;IMEX=2';data source=" & ThisWorkbook。FullName
    sql = ”Select * from [病例数据$A1:Q] "
    rs。Open sql, cn, 1, 3
    ListView1.ListItems。Clear                            ’清除ListView记录
    Do While Not rs.EOF

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。