版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(完整版)VBA实战系列(ListView控件)(完整)K)vba实战系列(比1S63控件)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)VBA实战系列(ListView控件))的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)VBA实战系列(ListView控件)的全部内容。冬雨Q:470-020-8739
(完整版)VBA(完整版)VBA实战系列(ListView控件)(完整版)VBA实战系列3$t必83控件)编辑整理:张嬗雒老师尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望(完整版)VBA实战系列(ListView控件)这篇文档能够给您的工作和学习带来便利。同时我们也真诚的希望收到您的建议和反馈到下面的留言区这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为〈(完整版)VBA实战系列(ListView控件)〉这篇文档的全部内容。冬雨Q:470-020-8739(完整版)VBA实战系列(ListView控件)VBA项目实战ListView控件应用ListView控件是一款非常优秀的表格控件,被广泛应用于VBA项目78人使用者熟练地掌握此控件的用法,不仅能大大地增加自己学习VBA的兴趣,而且对实际工作也有很好的帮助。Excel基础数据A3二DiFGH1日期姓名性别年龄联系方式电话诊断手术名防:2201ir2张二生22上工肽扃醉沱叨士腐生3201ir二李四生23匕京病换心脏守护■12011-"-!TH男2c匕京肤病切氏5201L-Y计六里25上海市13S06334567皮胀布切•62014-"-£把二生26上海皮扃切皮声三更当1匕京市14-nr皮肤病切比H"UILf李国男加匕京市1+06334:56T皮皮病切皮g20Li-"-S于五生29匕京市1420633456T皮肤病m反1020Li-"-10李四男30球病胃7手术二、实现效果我们要通过VBA控件listview,实现如下图示效果日期2011-07-02张三3014-07-03李西四2011-07-04王五日期2011-07-02张三3014-07-03李西四2011-07-04王五212011-07-05赵六否2011-07-06张三E011-07-07球三打2011-07-08料232011-07-09王五用2011-07-10李四31市市市市市市市市市,海克京海海克京京克,-JrJkuH-H-ku-■I--■I------■■棘方式1350633456T1360&3345671370633456713306330713go63345671400633456714106334567142063307
切胃三、实现过程(一)添加listview控件.打开VBE编辑器,新建窗体flist.添加listview控件。在工具相中选择listview控件放入窗体。如工具箱中没有该控件,则应查找注册MSCOMCTL.OCX文件.我们可以按照以下方法进行注册:1)将文件解压到“C:\WINDOWS\system32”(WindowsXP);2)单击【开始】|【运行】命令,键入“匹8$丫「32C:\WINDOWS\system32\MSCOMCTL.OCX"(WindowsXP)”进行注册。(二)添加代码冬雨Q:470-020-8739
(完整版)VBA实战系列(ListView控件)1。添加表头,”日期、64,0,“姓名”,54,2,"性别",42,2“年龄”,54,2”联系方式”,54,2,“电话",99,2,"诊断、54,2,”日期、64,0,“姓名”,54,2,"性别",42,2“年龄”,54,2”联系方式”,54,2,“电话",99,2,"诊断、54,2“手术名称”,86,2显示格式为报表格式ListViewl。FullRowSelect=True '允许整行选中ListViewl.Gridlines=True'显示网格线ListViewl。Sorted=True'排序EndSub以上代码中ListView1.ColumnHeaders.Add,,“日期“,64,0中的64代表该表头字段的宽度,0代表居左显示方式.【应用技巧】在实际应用中,如何确定列宽对初学者来说是一个难点,这里给大家提供一个确定列宽的实用方法。通常ListView控件加载的数据都存放在一张excel工作表中,我们先在工作表中调整好列宽,然后用ListView控件需要加载的excel表格的列宽作为相应ListView控件的列宽即可,求列宽可用以vba代码实现。个人具体做法见如下过程:Sub代码生成1_ListView标题头和列宽()DimshAsWorksheet,iSetsh=Sheet1DebugoPrint"PrivateSubUserForm_Initialize()”Fori=1ToshoCells(1,Columns.Count)。End(xlToLeft).ColumnIfi=1ThenDebug.Print"ListView1。ColumnHeadersoAdd,,"""&sh。Cells(1,i)&""","&Int(sh.Cells(1,i).Width)&",0”Ifi〉1ThenDebugoPrintListView1.ColumnHeaders.Add,,"""&sh.Cells(1,i)&""","&Int(shoCells(1,i)oWidth)&",2"NextiDebug.Print"ListView1oView=lvwReport"&Chr(10)&"ListView1.FullRowSelect=True"&Chr(10)&"ListView1.Gridlines=True"&Chr(10)&"EndSub",ListView1oColumnHeaders.Add,,"日期”,64,0注释:对齐方式(0:左,1右,2居中),首先必须靠左,这是控件自身特性决定的EndSub立即窗口显示debugoprint结果,可以复制此代码,是不是简单快捷很多。冬雨Q:470-020-8739
(完整版)VBA实战系列(ListView控件)立即谢口Pr1v:±t&Suh1JserF»:irm_IrLi11alizeI...J4625394555022222422I.I.I.I—1-I.I.J匚」4625394555022222422I.I.I.I—1-I.I.J匚」I.I.I.I.I—1■I.I.4424^94^4^^4E545式叼5称"目要况5杳H5LietViE'*1.ColuniriHe e.儿33ListViey・1.ColijninKe=aders.AddLietVi曰*1.ColuniriKead&rs.Add、『LietVie'A'l.ColuninKe:id&re.kddListVi日7i・1■匚olijniriKe=idei_q.kddglListViE?i・1.CnluniriKead&rs.kiA,..ListViwvr1.ColuniriHe:ider.kddList1/ie'A'l.CuluninKe:aders.kdd,,..LietVie'A'l.ColuniriHe:id&re.Add,ListView1.ColuniriKe:ad&re.Add,ListView1.ColuniriKe e.XddLietViE'*1.ColuniriKe:adere.kddListViey・1.ColijninKe=aders.Add、『LietVi曰*1.ColuniriKead&rs.AddListVieyt1.ColijniriKe=idei_q.kddLi5tViE?i・1.CuluninKead&rs.kidListVi1.Vlew=1v^'RejiortLi三t1/ie'A-l.Fi£LllLuwSelect=TrueList1/iew1.Gi-idlines=Tmt:EmiSub2.加载数据SubListDisp()DimcnAsObject,rsAsObject,sqlAsString,ItmSetcn=CreateObject(”ADODB.Connection”) ’连接数据库CreateObject("adodboconnection”)Setrs=CreateObject("ADODB。Recordset")cn.Open“provider二microsoft.jet.oledb。4。0;extendedproperties='excel8.0;HDR=yes;IMEX=2';datasource="&ThisWorkbookoFullNamesql=”Select大from[病例数据$A1:Q]"rs。Opensql,cn,1,3ListViewl.Listltems。Clear '清除ListView记录DoWhileNotrs.EOF'数据加载代码开始SetItm=ListViewl.Listltems。Add()IfNotIsNull(rs.Fields(”日期"))ThenItm.Text=「$下16E$("日期")IfNotIsNull(rs。Fields("姓名"))ThenItm。SubItems(1)=rs。Fields("姓名")IfNotIsNull(rSoFields("性另『'))ThenItm.SubItems(2)=rs。Fields("性别”)IfNotIsNull(rsoFields("年龄"))ThenItm.SubItems(3)=rs。Fields(“年龄”)IfNotIsNull(rs.Fields("联系方式"))ThenItm。SubItems(4)=rs。Fields("联系方式”)IfNotIsNull(rSoFields("电话"))ThenItm。SubItems(5)=rs。Fields("电话”)IfNotIsNull(rSoFields("诊断”))ThenItm。SubItems(6)=rs。Fields("诊断”)IfNotIsNull(rSoFields("手术名称"))ThenItm。SubItems(7)=rs.Fields("手术名称”)IfNotIsNull(rs.Fields("病理号"))ThenItm。SubItems(8)=rs。Fields("病理号")IfNotIsNull(rSoFields(“手术时间”))ThenItm。SubItems(9)=rs.Fields("手术时间")IfNotIsNull(rs.Fields("病理诊断"))ThenItm。SubItems(10)=rs。Fields(”病理诊断")IfNotIsNull(rsoFields("病情摘要”))ThenItm。SubItems(11)=rs。Fields(”冬雨Q:470-020-8739
(完整版)VBA实战系列(ListView控件)病情摘要")IfNotIsNull(rs.Fields("手术情况"))ThenItm。SubItems(12)=rs.Fields("手术情况")IfNotIsNull(rs。Fields("备注"))ThenItm。SubItems(13)=rs.Fields("备注")IfNotIsNull(rs.Fields(“辅助检查”))ThenItm.SubItems(14)=rs。Fields("辅助检查")IfNotIsNull(rs。Fields("手术图片"))ThenItm。SubItems(15)=rs。Fields("手术图片")IfNotIsNull(rs.Fields(“随访"))ThenItm。SubItems(16)=rs。Fields("随访")’数据加载代码结束rs。MoveNextLooprs.CloseSetrs=Nothingcn。CloseEndSub【应用技巧】:以上面代码相似,代码中存在大量类似重复的代码.一句句打字无疑影响效率.可以用以下代码生成部分代码:Sub代码生成2__Listview_item()DimshAsWorksheet,i%,sSetsh=Sheet1DebugoPrint"SetItm二ListView1。ListItems。Add()"Fori=1Tosh.Cells(1,Columns。Count)oEnd(xlToLeft)。Columns=Cells(1,i)oValueIfi=1ThenDebugoPrint"ifNotIsNull(rs°Fields("""&s&”""))thenItm.Text=rsoFields(”””&s&…)" 'Ifi>1ThenDebugoPrint”ifNotIsNull(rs.Fields("""&s&"""))thenItm.SubItems("&i-1&")=rs.Fields("""&s&""")” ‘NextiEndSubDebug立即窗口显示,复.'I' tanfiiisbiAsYorhEh44t^i区e号H5bi=DobgghiTitItn=LiztVjwv]LitlLJlddCT!':'£i-1TaskAll土LC>:>Lunas.CDiuitj.IndixHoLfift).ColuiriJi.e-C«lls(],dlIfj=1DiLot.Print":i.EtfotIEtfull(rsFS式长厂.*工0皿口)Itm.Tawt=rsFnL1厂口,血工心Ifi>1TheaDabuc.PrintniEtfolIeEFtlELIts.FitLdxC^^dsAthen.Itn.3uMt«=C&i-L邕*)=rs. 4s勘行"PtKtiEndSubiEHEIstfull(T3FiddsrifHot工工出ill(teFiJdt(niEHEIstfull(T3FiddsrifHot工工出ill(teFiJdt(nifHot13tfTiLl(r:LFielA:;「iEIstfull(riFieldsCifHot[峭山l(r£FiifNotIstfiilUrs.rieldsCiEPntIstfTill6-3ritldsCifHotIstfullFi(JdL(nifHotIstfiill(rs.rieldsCiEWotIstfiill(n7itldsfifHot工工出ill(teFiJdt(nifHot13tfTiLl(r:LFielA:;「iEIstfull(riFieldsCifHot工峭山1次£FiifNotIstfiilUrs.rieldsCiEPntIstfTill6-3ritldsCifHotIstfull(r^Fi(JdL(n■1]thenUn.Teil-:
itiAfilitT3.FicLdj广曰期•、〕;(0=rs-Fiflldsit£)=〜匹立亚严隹铲)X)Ihen.IS =T3.F:elds式以j皿口—ubltaiM=rs―底心联系方式4Jthearii.Su.KEtens45)=『5.Fields电话”"力thenIt?S'ltlIrmfcJ=r3.FieldsC'fsWfi铲th稣Un. :rsFisl包了"1,thenItn.STihlteros(:3'l间"JjthedUm.5,obItmisS)=raFieldmVTin. 二e,Fi&l加更"JitheaItn. =rs.Fields况":JjUudlTin.5,abItmsQE]=rsFiddsC^)thARIti.SaMtfinstlJ)二rsFid-dtrg-.^F黄,1thtaItn.5nl>It4fi5C14)=rz-Fiiddsrs可口)UuaItn.SubltnsQ^]=rs.Fid.dsC^thanlit -rs「宙击''Ii况r通过以上两段代码,listview控件可以顺利加载并列表显示数据。冬雨Q:470-020-8739(完整版)VBA实战系列(ListView控件)四、知识归纳以上做法仅限于冬雨开发过程中的一点用法。为方便丫8人爱好者学习,将listview控件相关知识归纳如下:(一)语法ListView1.ColumnHeaders。Add(index,key,text,width,alignment,icon)Add方法的语法包含下面部分:部分描述object 必需的。对象表达式,其值是ColumnHeaders集合。index 可选的。唯一标识对象集合成员的整数。key 可选的。唯一的字符串表达式,可以用来访问集合的成员。text可选的。出现在ColumnHeader对象中的字符串。width 可选的.数值表达式,它使用控件容器的度量单位指定对象的宽度。alignment可选的.决定ColumnHeader对象中文本对齐方式的整数。关于设置信息,请参阅“请参阅列表中Alignment属性的信息。icon 可选的。Smallicons图象列表中图象的关键字或索引。说明Add方法返回新插入的ColumnHeader对象的引用。使用index参数在ColumnHeaders集合的特定位置插入列标头。当ColumnHeaders集合成员可能动态变更时,应使用Key属性引用它们,因为任何ColumnHeader对象的Index属性都可以改变。(二)属性1、对齐属性ListView控件在初始化之前,为美观之需要,我们可以对每列数据排列格式进行设置,每列数据可或左对齐、或右对齐、或中间对齐,该项工作和加载表头同步进行,下面以加载“姓名”表头为例,其代码如下:左对齐:ListView1。ColumnHeaders.Add,,“姓名",40,lvwColumnLeft右对齐:ListView1。ColumnHeaders。Add,,"姓名",40,lvwColumnRight中间对齐:ListView1。ColumnHeaders.Add,,"姓名",40,lvwColumnCenter这里需特别提醒ListView控件首列只能左对齐,否则代码会出现编译错误。2、排序属性ListView控件在初始化之前,可以根据用户需求对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度办公用品及办公设备租赁一体化服务合同
- 二零二五年度养老社区入住与紧急救援协议3篇
- 2025年度养猪场养殖废弃物处理设施建设合同3篇
- 2025年度农村房屋买卖合同及土地承包权转让与配套设施租赁及物业管理合同
- 2025年度农副产品线上与线下销售融合合作协议3篇
- 二零二五年度危化品公路货物运输安全管理合同3篇
- 二零二五年度公司经理战略合作伙伴关系聘用协议3篇
- 二零二五年度美发行业美容美发行业投资合作协议书3篇
- 2025年度农村自建房合同协议书(含节能环保建筑材料)
- 二零二五年度农村房屋置换项目合作框架协议
- 数据分析基础与应用指南
- 人教版(PEP)小学六年级英语上册全册教案
- 广东省广州市海珠区2023-2024学年六年级上学期月考英语试卷
- 消防水域救援个人防护装备试验 大纲
- 机电样板施工主要技术方案
- 涉税风险管理方案
- 青岛市2022-2023学年七年级上学期期末道德与法治试题
- 高空作业安全免责协议书范本
- 石油化学智慧树知到期末考试答案章节答案2024年中国石油大学(华东)
- 手术后如何防止排尿困难
- 特种设备“日管控、周排查、月调度”表格
评论
0/150
提交评论