




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——VBA實(shí)戰(zhàn)系列(ListView控件)
冬雨之VBA項(xiàng)目實(shí)戰(zhàn)應(yīng)用:470208739
VBA項(xiàng)目實(shí)戰(zhàn)__ListView控件應(yīng)用
ListView控件是一款十分優(yōu)秀的表格控件,被廣泛應(yīng)用于VBA項(xiàng)目。VBA使用者熟練地把握此控件的用法,不僅能大大地增加自己學(xué)習(xí)VBA的興趣,而且對(duì)實(shí)際工作也有很好的幫助。
一、Excel基礎(chǔ)數(shù)據(jù)
二、實(shí)現(xiàn)效果
我們要通過(guò)VBA控件listview,實(shí)現(xiàn)如下圖示效果
三、實(shí)現(xiàn)過(guò)程
(一)添加listview控件
1.開(kāi)啟VBE編輯器,新建窗體flist
2.添加listview控件。在工具箱中選擇listview控件放入窗體。如工具箱中沒(méi)有該控件,則應(yīng)查找注冊(cè)MSCOMCTL.OCX文件。我們可以依照以下方法進(jìn)行注冊(cè):
1)將文件解壓到“C:\\WINDOWS\\system32〞(WindowsXP);
2)單擊|命令,鍵入“regsvr32C:\\WINDOWS\\system32\\MSCOMCTL.OCX〞(WindowsXP)〞進(jìn)行注冊(cè)。
(二)添加代碼1.添加表頭
PrivateSubUserForm_Initialize()
ListView1.ColumnHeaders.Add,,\日期\ListView1.ColumnHeaders.Add,,\姓名\ListView1.ColumnHeaders.Add,,\性別\ListView1.ColumnHeaders.Add,,\年齡\ListView1.ColumnHeaders.Add,,\聯(lián)系方式\
冬雨Q:470-020-8739
冬雨之VBA項(xiàng)目實(shí)戰(zhàn)應(yīng)用:470208739
ListView1.ColumnHeaders.Add,,\電話\ListView1.ColumnHeaders.Add,,\診斷\ListView1.ColumnHeaders.Add,,\手術(shù)名稱\ListView1.View=lvwReport'顯示格式為報(bào)表格式ListView1.FullRowSelect=True'允許整行選中ListView1.Gridlines=True'顯示網(wǎng)格線'ListView1.Sorted=True'排序EndSub
以上代碼中ListView1.ColumnHeaders.Add,,\日期\中的64代表該表頭字段的寬度,0代表居左顯示方式。
在實(shí)際應(yīng)用中,如何確定列寬對(duì)初學(xué)者來(lái)說(shuō)是一個(gè)難點(diǎn),這里給大家提供一個(gè)確定列寬的實(shí)用方法。尋常ListView控件加載的數(shù)據(jù)都存放在一張excel工作表中,我們先在工作表中調(diào)整好列寬,然后用ListView控件需要加載的excel表格的列寬作為相應(yīng)ListView控件的列寬即可,求列寬可用以vba代碼實(shí)現(xiàn)。個(gè)人具體做法見(jiàn)如下過(guò)程:
Sub代碼生成1__ListView標(biāo)題頭和列寬()DimshAsWorksheet,iSetsh=Sheet1
Debug.Print\
Fori=1Tosh.Cells(1,Columns.Count).End(xlToLeft).Column
Ifi=1ThenDebug.Print\ListView1.ColumnHeaders.Add,,\HDR=yes;IMEX=2';datasource=\
sql=\病例數(shù)據(jù)$A1:Q]\rs.Opensql,cn,1,3
ListView1.ListItems.Clear'清除ListView記錄DoWhileNotrs.EOF'數(shù)據(jù)加載代碼開(kāi)始
SetItm=ListView1.ListItems.Add()
IfNotIsNull(rs.Fields(\日期\日期\IfNotIsNull(rs.Fields(\姓名\姓名\IfNotIsNull(rs.Fields(\性別\性別\IfNotIsNull(rs.Fields(\年齡\年齡\IfNotIsNull(rs.Fields(\聯(lián)系方式\聯(lián)系方式\IfNotIsNull(rs.Fields(\電話\電話\IfNotIsNull(rs.Fields(\診斷\診斷\IfNotIsNull(rs.Fields(\手術(shù)名稱\手術(shù)名稱\IfNotIsNull(rs.Fields(\病理號(hào)\病理號(hào)\IfNotIsNull(rs.Fields(\手術(shù)時(shí)間\手術(shù)時(shí)間\IfNotIsNull(rs.Fields(\病理診斷\病理診斷\IfNotIsNull(rs.Fields(\病情摘要\病情摘要\IfNotIsNull(rs.Fields(\手術(shù)狀況\手術(shù)狀況\IfNotIsNull(rs.Fields(\備注\備注\IfNotIsNull(rs.Fields(\輔助檢查\輔助檢查\IfNotIsNull(rs.Fields(\手術(shù)圖片\手術(shù)圖片\
冬雨Q:470-020-8739
冬雨之VBA項(xiàng)目實(shí)戰(zhàn)應(yīng)用:470208739
IfNotIsNull(rs.Fields(\隨訪\隨訪\'數(shù)據(jù)加載代碼終止rs.MoveNextLooprs.CloseSetrs=Nothingcn.CloseEndSub:
以上面代碼相像,代碼中存在大量類似重復(fù)的代碼。一句句打字無(wú)疑影響效率。可以用以下代碼生成部分代碼:
Sub代碼生成2__Listview_item()DimshAsWorksheet,i%,sSetsh=Sheet1
Debug.Print\
Fori=1Tosh.Cells(1,Columns.Count).End(xlToLeft).Columns=Cells(1,i).Value
Ifi=1ThenDebug.Print\ifNotIsNull(rs.Fields(\Itm.Text=rs.Fields(\&\'
Ifi>1ThenDebug.Print\ifNotIsNull(rs.Fields(\rs.Fields(\'
NextiEndSub
Debug馬上窗口顯示,復(fù)
通過(guò)以上兩段代碼,listview控件可以順利加載并列表顯示數(shù)據(jù)。
四、知識(shí)歸納
以上做法僅限于冬雨開(kāi)發(fā)過(guò)程中的一點(diǎn)用法。為便利VBA愛(ài)好者學(xué)習(xí),將listview控件相關(guān)知識(shí)歸納如下:(一)語(yǔ)法
ListView1.ColumnHeaders.Add(index,key,text,width,alignment,icon)Add方法的語(yǔ)法包含下面部分:
冬雨Q:470-020-8739
冬雨之VBA項(xiàng)目實(shí)戰(zhàn)應(yīng)用:470208739
部分描述
object必需的。對(duì)象表達(dá)式,其值是ColumnHeaders集合。index可選的。唯一標(biāo)識(shí)對(duì)象集合成員的整數(shù)。
key可選的。唯一的字符串表達(dá)式,可以用來(lái)訪問(wèn)集合的成員。text可選的。出現(xiàn)在ColumnHeader對(duì)象中的字符串。
width可選的。數(shù)值表達(dá)式,它使用控件容器的度量單位指定對(duì)象的寬度。
alignment可選的。決定ColumnHeader對(duì)象中文本對(duì)齊方式的整數(shù)。關(guān)于設(shè)置信息,請(qǐng)參閱“請(qǐng)參閱列表中Alignment屬性的信息。
icon可選的。Smallicons圖象列表中圖象的關(guān)鍵字或索引。說(shuō)明Add方法返回新插入的ColumnHeader對(duì)象的引用。使用index參數(shù)在ColumnHeaders集合的特定位置插入列標(biāo)頭。
當(dāng)ColumnHeaders集合成員可能動(dòng)態(tài)變更時(shí),應(yīng)使用Key屬性引用它們,由于任何ColumnHeader對(duì)象的Index屬性都可以改變。(二)屬性
1、對(duì)齊屬性
ListView控件在初始化之前,為美觀之需要,我們可以對(duì)每列數(shù)據(jù)排列格式進(jìn)行設(shè)置,每列數(shù)據(jù)可或左對(duì)齊、或右對(duì)齊、或中間對(duì)齊,該項(xiàng)工作和加載表頭同步進(jìn)行,下面以加載“姓名〞表頭為例,其代碼如下:
左對(duì)齊:ListView1.ColumnHeaders.Add,,\姓名\右對(duì)齊:ListView1.ColumnHeaders.Add,,\姓名\中間對(duì)齊:ListView1.ColumnHeaders.Add,,\姓名\這里需特別提醒ListView控件首列只能左對(duì)齊,否則代碼會(huì)出現(xiàn)編譯錯(cuò)誤。
2、排序?qū)傩?/p>
ListView控件在初始化之前,可以根據(jù)用戶需求對(duì)指定列進(jìn)行排序,其代碼如下:
ListView1.Sorted=True'listivew的排序?qū)傩詾門rue時(shí),ListView控件將對(duì)指定列進(jìn)行排序,屬性為False時(shí)ListView控件將不具有排序功能。
ListView1.SortKey=0'0為listivew排序的列索引號(hào),0為第1列、1為第2列,以此類推,若此項(xiàng)屬性值未設(shè)置,ListView控件將默認(rèn)按首列排序。假使我們想點(diǎn)擊
ListView表頭排序,可用以下代碼實(shí)現(xiàn):
PrivateSubListView1_ColumnClick(ByValColumnHeaderAsMSComctlLib.ColumnHeader)IfColumnHeader.Index-1>-1ThenListView1.SortKey=ColumnHeader.Index-1EndSub
3、顯示方式設(shè)置
ListView控件除了可以對(duì)數(shù)據(jù)排列格式進(jìn)行設(shè)置外,還可以對(duì)數(shù)據(jù)顯示方式進(jìn)行設(shè)置,常見(jiàn)的有日期顯示方式、金額顯示方式,以單元格F3數(shù)據(jù)加載給ListView控件第2列為例,其代碼如下:
日期顯示方式:Itm.subitem1(1)=Format(Cells(3,\金額顯示方式:Itm.subitem1(1)=Format(Cells(3,\4、選擇ListView控件任意一行,獲取行號(hào)I=ListView1.SelectedItem.Index5、獲取ListView控件第I行,首列的值ListView1.ListItems(I).Text
6、獲取ListView控件第I行,J列的值ListView1.ListItems(I).SubItems(J-1)
冬雨Q:470-020-8739
冬雨之VBA項(xiàng)目實(shí)戰(zhàn)應(yīng)用:470208739
7、刪除ListView控件第I行數(shù)據(jù)ListView1.ListItems.RemoveI8、刪除ListView控件所有數(shù)據(jù)ListView1.ListItems.Clear9、獲取ListView控件記錄數(shù)
ListView1.ListItems
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 全國(guó)粵教版信息技術(shù)八年級(jí)下冊(cè)第二單元第十五課《數(shù)碼顯示與無(wú)線通信的實(shí)現(xiàn)》教學(xué)設(shè)計(jì)
- 云南經(jīng)貿(mào)外事職業(yè)學(xué)院《社會(huì)問(wèn)題與對(duì)策》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧建筑職業(yè)學(xué)院《中學(xué)生物學(xué)課程標(biāo)準(zhǔn)與教材研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶移通學(xué)院《精細(xì)化工綜合實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西體育高等??茖W(xué)?!斗b美學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南昌交通學(xué)院《電子科學(xué)與技術(shù)專業(yè)創(chuàng)新課程》2023-2024學(xué)年第二學(xué)期期末試卷
- 克拉瑪依職業(yè)技術(shù)學(xué)院《新能源汽車檢測(cè)與維修》2023-2024學(xué)年第二學(xué)期期末試卷
- 濱州學(xué)院《酒店電子商務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶工程職業(yè)技術(shù)學(xué)院《現(xiàn)代傳感器技術(shù)及虛擬儀器》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《會(huì)計(jì)學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 初中語(yǔ)文九年級(jí)下冊(cè)閱讀理解50篇附答案解析
- 《陶瓷造型工藝》課程標(biāo)準(zhǔn)
- 火電廠各指標(biāo)指標(biāo)解析(最新版)
- 病毒性腦炎患者的護(hù)理查房ppt課件
- TPU材料項(xiàng)目可行性研究報(bào)告寫作參考范文
- 第二編 債權(quán)總論
- 試用期考核合格證明表
- 常見(jiàn)八種疾病
- 膠粘劑基礎(chǔ)知識(shí)及產(chǎn)品詳解(課堂PPT)
- 鐵路總公司近期處理的七起突出質(zhì)量問(wèn)題的通報(bào)
- 常用洪水預(yù)報(bào)模型介紹
評(píng)論
0/150
提交評(píng)論