資源描述:
《如何實(shí)現(xiàn)vb與excel無縫連接》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、如何實(shí)現(xiàn)VB與EXCEL的無縫連接2003-02-17··吳剛··yesky VB是常用的應(yīng)用軟件開發(fā)工具之一,由于VB的報(bào)表功能有限,而且一但報(bào)表格式發(fā)生變化,就得相應(yīng)修改程序,給應(yīng)用軟件的維護(hù)工作帶來極大的不便。因此有很多程序員現(xiàn)在已經(jīng)充分利用EXECL的強(qiáng)大報(bào)表功來實(shí)現(xiàn)報(bào)表功能。但由于VB與EXCEL由于分別屬于不同的應(yīng)用系統(tǒng),如何把它們有機(jī)地結(jié)合在一起,是一個(gè)值得我們研究的課題?! ∫?、VB讀寫EXCEL表: VB本身提自動(dòng)化功能可以讀寫EXCEL表,其方法如下: 1、在工程中引用MicrosoftExcel類型庫: 從"工程"菜單中選擇"引用"欄;選擇Microsoft
2、Excel9.0ObjectLibrary(EXCEL2000),然后選擇"確定"。表示在工程中要引用EXCEL類型庫?! ?、在通用對(duì)象的聲明過程中定義EXCEL對(duì)象:DimxlAppAsExcel.ApplicationDimxlBookAsExcel.WorkBookDimxlSheetAsExcel.Worksheet 3、在程序中操作EXCEL表常用命令:SetxlApp=CreateObject("Excel.Application")'創(chuàng)建EXCEL對(duì)象SetxlBook=xlApp.Workbooks.Open("文件名")'打開已經(jīng)存在的EXCEL工件簿文件xlApp
3、.Visible=True'設(shè)置EXCEL對(duì)象可見(或不可見)SetxlSheet=xlBook.Worksheets("表名")'設(shè)置活動(dòng)工作表xlSheet.Cells(row,col)=值'給單元格(row,col)賦值xlSheet.PrintOut'打印工作表xlBook.Close(True)'關(guān)閉工作簿xlApp.Quit'結(jié)束EXCEL對(duì)象SetxlApp=Nothing'釋放xlApp對(duì)象xlBook.RunAutoMacros(xlAutoOpen)'運(yùn)行EXCEL啟動(dòng)宏xlBook.RunAutoMacros(xlAutoClose)'運(yùn)行EXCEL關(guān)閉宏 4、在
4、運(yùn)用以上VB命令操作EXCEL表時(shí),除非設(shè)置EXCEL對(duì)象不可見,否則VB程序可繼續(xù)執(zhí)行其它操作,也能夠關(guān)閉EXCEL,同時(shí)也可對(duì)EXCEL進(jìn)行操作。但在EXCEL操作過程中關(guān)閉EXCEL對(duì)象時(shí),VB程序無法知道,如果此時(shí)使用EXCEL對(duì)象,則VB程序會(huì)產(chǎn)生自動(dòng)化錯(cuò)誤。形成VB程序無法完全控制EXCEL的狀況,使得VB與EXCEL脫節(jié)?! 《XCEL的宏功能: EXCEL提供一個(gè)VisualBasic編輯器,打開VisualBasic編輯器,其中有一工程屬性窗口,點(diǎn)擊右鍵菜單的"插入模塊",則增加一個(gè)"模塊1",在此模塊中可以運(yùn)用VisualBasic語言編寫函數(shù)和過程并稱之為宏。
5、其中,EXCEL有兩個(gè)自動(dòng)宏:一個(gè)是啟動(dòng)宏(SubAuto_Open()),另一個(gè)是關(guān)閉宏(SubAuto_Close())。它們的特性是:當(dāng)用EXCEL打含有啟動(dòng)宏的工簿時(shí),就會(huì)自動(dòng)運(yùn)行啟動(dòng)宏,同理,當(dāng)關(guān)閉含有關(guān)閉宏的工作簿時(shí)就會(huì)自動(dòng)運(yùn)行關(guān)閉宏。但是通過VB的自動(dòng)化功能來調(diào)用EXCEL工作表時(shí),啟動(dòng)宏和關(guān)閉宏不會(huì)自動(dòng)運(yùn)行,而需要在VB中通過命令xlBook.RunAutoMacros(xlAutoOpen)和xlBook.RunAutoMacros(xlAutoClose)來運(yùn)行啟動(dòng)宏和關(guān)閉宏?! ∪?、VB與EXCEL的相互勾通: 充分利用EXCEL的啟動(dòng)宏和關(guān)閉宏,可以實(shí)現(xiàn)VB與E
6、XCEL的相互勾通,其方法如下: 在EXCEL的啟動(dòng)宏中加入一段程序,其功能是在磁盤中寫入一個(gè)標(biāo)志文件,同時(shí)在關(guān)閉宏中加入一段刪除此標(biāo)志文件的程序。VB程序在執(zhí)行時(shí)通過判斷此標(biāo)志文件存在與否來判斷EXCEL是否打開,如果此標(biāo)志文件存在,表明EXCEL對(duì)象正在運(yùn)行,應(yīng)該禁止其它程序的運(yùn)行。如果此標(biāo)志文件不存在,表明EXCEL對(duì)象已被用戶關(guān)閉,此時(shí)如果要使用EXCEL對(duì)象運(yùn)行,必須重新創(chuàng)建EXCEL對(duì)象?! ∷?、舉例: 1、在VB中,建立一個(gè)FORM,在其上放置兩個(gè)命令按鈕,將Command1的Caption屬性改為EXCEL,Command2的Caption屬性改為End。然后在其中輸
7、入如下程序:DimxlAppAsExcel.Application'定義EXCEL類DimxlBookAsExcel.Workbook'定義工件簿類DimxlsheetAsExcel.Worksheet'定義工作表類PrivateSubCommand1_Click()'打開EXCEL過程 IfDir("D:tempexcel.bz")=""Then'判斷EXCEL是否打開 SetxlApp=CreateObject("Exce