版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、dim xlsapp as excel.application dim xlsbook as excel.workbook dim xlssheet1 as excel.worksheet, xlssheet2 as excel.worksheet set xlsapp = createobject(excel.application) xlsapp.visible = true xlsapp.displayalerts = false set xlsbook = xlsapp.workbooks.open(d:111.xls) set xlssheet1 = xlsbook.sheets(2
2、) set xlssheet2 = xlsbook.sheets.add(xlssheet1) xlssheet2.name = aaaa xlsbook.save 2ms excel 說(shuō)起報(bào)表設(shè)計(jì)應(yīng)用程序,無(wú)意微軟的excel 是一支獨(dú)秀, ms excel 就是用來(lái)進(jìn)行表格和報(bào)表設(shè)計(jì)用的應(yīng)用程序,它具有優(yōu)秀的方格控制和宏代碼定制功能。所以如果在設(shè)計(jì)自己的應(yīng)用程序的時(shí)候能夠結(jié)合到excel 的話, 那么你的應(yīng)用程序就應(yīng)該是相當(dāng)?shù)耐晟屏?,因?yàn)闊o(wú)論是編輯還是打印功能,excel 都提供了很完美的解決方案,所以你的應(yīng)用程序所要做的事情就是實(shí)現(xiàn)程序和excel 通訊即可。事實(shí)上,可以使用 vbscr
3、ipt 可以將 vb 與 excel 兩者連接起來(lái)。 以下就簡(jiǎn)要介紹在 vb 下開發(fā)基于 excel 的編程思路。在 vb 中處理 excel 的對(duì)象大致分為五個(gè): application 對(duì)象、 workbook 對(duì)象、worksheet 對(duì)象、 range 對(duì)象以及 cell 對(duì)象。它們的功能分別如下:application- 用來(lái)指代整個(gè)應(yīng)用程序。workbook- 表示工作簿對(duì)象worksheet- 表示工作表對(duì)象,注意,一個(gè)工作簿可以包含多個(gè)工作表,它們就類似于多文檔中的框架窗口和里面的單個(gè)視圖一樣。range- 表示工作表中的某個(gè)區(qū)域范圍對(duì)象,特殊情況下也可以只代表一個(gè) cell。
4、cell- 表示特定工作表的一個(gè)單元格對(duì)象。這個(gè)對(duì)象的使用頻率是最高的。清楚了以上的五個(gè)對(duì)象的應(yīng)用范圍,那么使用它們就很簡(jiǎn)單了, 不過在使用這些對(duì)象之前,首先需要對(duì)它們進(jìn)行聲明。方法是在工程的引用對(duì)話框之下選擇microsoft excel9.0 object library,這樣就將整個(gè) excel 對(duì)象庫(kù)就引入到程序中來(lái)了。下面舉一個(gè)示例,其實(shí)現(xiàn)的功能是打開一個(gè)工作簿。function openbook(strfilepath as string) as boolean this procedure checks to see if the workbook specified in th
5、e strfilepath argument is open. if it is open, the workbook is activated. if it is not open, the procedure opens it. dim wkbcurrent as excel.workbook dim strbookname as string on error goto openbook_err determine the name portion of the strfilepath argument. strbookname = namefrompath(strfilepath) i
6、f len(strbookname) = 0 then exit function if workbooks.count 0 then for each wkbcurrent in workbooks if ucase$(wkbcurrent.name) = ucase$(strbookname) then wkbcurrent.activate exit function end if next wkbcurrent end if workbooks.open strbookname openbook = true openbook_end: exit function openbook_e
7、rr: openbook = false resume openbook_end end function 想把硬盤上任意分區(qū)下的電子表格(microsoft excel) 文件導(dǎo)入 vb 程,并將電子表格文件中的數(shù)據(jù)保存在數(shù)組變量里! 不是數(shù)據(jù)庫(kù)操作, 是一般應(yīng)用程序變量引入的問題!問題補(bǔ)充: 如果讀不懂破折號(hào)后面的內(nèi)容,你可以干脆省略破折號(hào)后面的內(nèi)容,只管回答前面的內(nèi)容即可!提問者:匿名最佳答案1、窗體上畫 command1 控件, commondialog1 控件。引用 microsoft excel object library. 2、代碼如下:private sub command1
8、_click() dim sfile as string, r() with commondialog1 .dialogtitle = 保存 .cancelerror = false .filter = excel 文件(*.xls)|*.xls| 所有文件(*.*)|*.* .showopen if len(.filename) = 0 then exit sub end if sfile = .filename end with readexcel sfile, sheet2, r 指定 sheet 名為 sheet2, 數(shù)據(jù)存儲(chǔ)在 r 數(shù)組。默認(rèn)sheet 的代碼: readexcel
9、sfile, , r end sub private sub readexcel(byval filename as string, byval sheetname as string, r() on error goto ext dim excelapp as excel.application dim blnnull as boolean, i as long, j as long, strtmp as string dim blnsheet as boolean filename = trim(filename) if filename = then exit sub set excel
10、app = new excel.application excelapp.visible = true excelapp.workbooks.open filename:=filename blnsheet = true if sheetname then excelapp.sheets(sheetname).select blnsheet = false redim r(100) for i = 1 to 100 excelapp.range(a + cstr(i).select strtmp = excelapp.activecell.formular1c1 if strtmp = the
11、n exit for r(i) = strtmp r(0) = r(0) + 1 next i excelapp.range(b + cstr(101).select 數(shù)據(jù)是第 2 列。strtmp = excelapp.activecell.formular1c1 if r(0) = 100 and strtmp then redim preserve r(200) j = 1: blnnull = false while blnnull = false for i = j * 100 + 1 to j * 100 + 100 excelapp.range(b + cstr(i).selec
12、t strtmp = excelapp.activecell.formular1c1 if strtmp = then blnnull = true: exit for r(i) = strtmp r(0) = r(0) + 1 next i excelapp.range(b + cstr(101).select strtmp = excelapp.activecell.formular1c1 if r(0) = j * 100 + 100 and strtmp then j = j + 1: redim preserve r(ubound(r) + 100) wend end if exit
13、1: excelapp.quit set excelapp = nothing exit sub ext: if err.number = 9 and blnsheet then err.clear: msgbox 無(wú) + sheetname: goto exit1 無(wú)指定 sheet err.clear resume next end sub vb 是常用的應(yīng)用軟件開發(fā)工具之一,由于vb 的報(bào)表功能有限,而且一但報(bào)表格式發(fā)生變化, 就得相應(yīng)修改程序, 給應(yīng)用軟件的維護(hù)工作帶來(lái)極大的不便。因此有很多程序員現(xiàn)在已經(jīng)充分利用execl 的強(qiáng)大報(bào)表功來(lái)實(shí)現(xiàn)報(bào)表功能。但由于 vb 與 excel 由于
14、分別屬于不同的應(yīng)用系統(tǒng), 如何把它們有機(jī)地結(jié)合在一起,是一個(gè)值得我們研究的課題。一、 vb 讀寫 excel 表:vb 本身提自動(dòng)化功能可以讀寫excel 表,其方法如下:1、在工程中引用 microsoft excel 類型庫(kù):從 工 程 菜 單中選 擇 引 用 欄; 選擇 microsoft excel 9.0 object library(excel2000 ) ,然后選擇 確定。表示在工程中要引用excel 類型庫(kù)。2、在通用對(duì)象的聲明過程中定義excel 對(duì)象:dim xlapp as excel.application dim xlbook as excel.workbook di
15、m xlsheet as excel.worksheet 3、在程序中操作 excel 表常用命令:set xlapp = createobject(excel.application) 創(chuàng)建 excel 對(duì)象set xlbook = xlapp.workbooks.open( 文件名 ) 打開已經(jīng)存在的 excel 工件簿文件xlapp.visible = true 設(shè)置 excel 對(duì)象可見(或不可見)set xlsheet = xlbook.worksheets(表名) 設(shè)置活動(dòng)工作表xlsheet.cells(row, col) = 值 給單元格( row,col)賦值xlsheet.
16、printout 打印工作表xlbook.close (true) 關(guān)閉工作簿xlapp.quit 結(jié)束 excel 對(duì)象set xlapp = nothing 釋放 xlapp 對(duì)象xlbook.runautomacros (xlautoopen) 運(yùn)行 excel 啟動(dòng)宏xlbook.runautomacros (xlautoclose) 運(yùn)行 excel 關(guān)閉宏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í)
17、, vb 程序無(wú)法知道,如果此時(shí)使用 excel 對(duì)象,則 vb 程序會(huì)產(chǎn)生自動(dòng)化錯(cuò)誤。形成vb 程序無(wú)法完全控制 excel 的狀況,使得 vb 與 excel 脫節(jié)。二、 excel 的宏功能:excel 提供一個(gè) visual basic 編輯器,打開 visual basic編輯器,其中有一工程屬性窗口,點(diǎn)擊右鍵菜單的插入模塊 ,則增加一個(gè) 模塊 1,在此模塊中可以運(yùn)用 visual basic 語(yǔ)言編寫函數(shù)和過程并稱之為宏。其中,excel 有兩個(gè)自動(dòng)宏:一個(gè)是啟動(dòng)宏(sub auto_open() ) , 另一個(gè)是關(guān)閉宏(sub auto_close() ) 。它們的特性是:當(dāng)用e
18、xcel 打含有啟動(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)化功能來(lái)調(diào)用 excel 工作表時(shí),啟動(dòng)宏和關(guān)閉宏不會(huì)自動(dòng)運(yùn)行,而需要在vb 中通 過 命 令 xlbook.runautomacros (xlautoopen) 和xlbook.runautomacros (xlautoclose) 來(lái)運(yùn)行啟動(dòng)宏和關(guān)閉宏。三、 vb 與 excel 的相互勾通:充分利用 excel 的啟動(dòng)宏和關(guān)閉宏,可以實(shí)現(xiàn)vb 與 excel 的相互勾通,其方法如下:在 excel 的啟動(dòng)宏中加入一段程序,其功能是在磁盤中寫入一個(gè)標(biāo)志文件,同時(shí)在關(guān)閉
19、宏中加入一段刪除此標(biāo)志文件的程序。vb 程序在執(zhí)行時(shí)通過判斷此標(biāo)志文件存在與否來(lái)判斷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。然后在其中輸入如下程序:dim xlapp as excel.application 定義 excel 類di
20、m xlbook as excel.workbook 定義工件簿類dim xlsheet as excel.worksheet 定義工作表類private sub command1_click() 打開 excel 過程if dir(d:tempexcel.bz) = then 判斷 excel 是否打開set xlapp = createobject(excel.application) 創(chuàng)建 excel 應(yīng)用類xlapp.visible = true 設(shè)置 excel 可見set xlbook = xlapp.workbooks.open(d:tempbb.xls) 打開 excel 工作
21、簿set xlsheet = xlbook.worksheets(1) 打開 excel 工作表xlsheet.activate 激活工作表xlsheet.cells(1, 1) = abc 給單元格 1 行駛列賦值xlbook.runautomacros (xlautoopen) 運(yùn)行 excel 中的啟動(dòng)宏else msgbox (excel已打開 ) end if end sub private sub command2_click() if dir(d:tempexcel.bz) then 由 vb 關(guān)閉 excel xlbook.runautomacros (xlautoclose)
22、 執(zhí)行 excel 關(guān)閉宏xlbook.close (true) 關(guān)閉 excel 工作簿xlapp.quit 關(guān)閉 excel end if set xlapp = nothing 釋放 excel 對(duì)象end end sub 2、在 d 盤根目錄上建立一個(gè)名為temp 的子目錄,在 temp 目錄下建立一個(gè)名為bb.xls的 excel 文件。3、 在bb.xls 中打開 visual basic 編輯器,在工程窗口中點(diǎn)鼠標(biāo)鍵選擇插入模塊,在模塊中輸入入下程序存盤:sub auto_open() open d:tempexcel.bz for output as #1 寫標(biāo)志文件close
23、 #1 end sub sub auto_close() kill d:tempexcel.bz 刪除標(biāo)志文件end sub 4、運(yùn)行 vb 程序,點(diǎn)擊 excel 按鈕可以打開 excel 系統(tǒng),打開 excel 系統(tǒng)后,vb 程序和 excel 分別屬兩個(gè)不同的應(yīng)用系統(tǒng),均可同時(shí)進(jìn)行操作,由于系統(tǒng)加了判斷,因此在vb 程序中重復(fù)點(diǎn)擊 excel 按鈕時(shí)會(huì)提示 excel 已打開。 如果在 excel 中關(guān)閉 excel 后再點(diǎn) excel 按鈕,則會(huì)重新打開 excel 。而無(wú)論 excel 打開與否,通過 vb 程序均可關(guān)閉 excel 。這樣就實(shí)現(xiàn)了 vb 與excel 的無(wú)縫連接。、
24、打開 vb-在 form1 上增加一個(gè) command1 按鈕,雙擊 command1 按鈕,把以下代碼放入窗體內(nèi);2、運(yùn)行前,在菜單的選“ 工程 ” -“ 引用 ” -找到microsoft excel 12.0 object library- 確定;然后才可以運(yùn)行;3、代碼如下:dim exapp as new excel.application dim exb as excel.workbook dim exsh as excel.worksheet dim arr(6, 6) as integer 定義一個(gè)二維數(shù)組,數(shù)據(jù)類型為整數(shù)exapp.workbooks.open c:book1.xls 打開 exel 文件,路徑和文件名自己根據(jù)實(shí)際修改set exb = exapp.workbooks(1) set exsh = exb.worksheets(sheet1) for i = 1 to 6 假設(shè)是讀取 a1:f6 的 6x6 區(qū)域數(shù)據(jù)for j = 1 to 6 arr(i, j) = exsh.cells(i, j) next j next i 把自己需要對(duì)數(shù)組數(shù)據(jù)進(jìn)一步處理的部分加進(jìn)去. exapp.workbooks.close exapp.quit set exap
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家園協(xié)同下開展德育工作的實(shí)踐探索
- 2025教育實(shí)習(xí)合同范本
- 學(xué)生心理健康與自我管理的同步提升
- 媒體融合時(shí)代的新聞視頻化趨勢(shì)研究
- 南通科技職業(yè)學(xué)院《模擬電子技術(shù)課程設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌大學(xué)科學(xué)技術(shù)學(xué)院《計(jì)算機(jī)程序設(shè)計(jì)(python)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度工業(yè)廠房場(chǎng)地租賃協(xié)議書3篇
- 二零二五年度貨運(yùn)代理合同標(biāo)的為國(guó)際物流服務(wù)
- 2024版婚宴運(yùn)輸服務(wù)協(xié)議
- 2024年車輛租賃購(gòu)模式協(xié)議樣本版
- 基坑支護(hù)工程質(zhì)量控制要點(diǎn)
- 2024年度公司大事記
- (試題)考試護(hù)理應(yīng)急預(yù)案題庫(kù)與答案
- 【閱讀提升】部編版語(yǔ)文五年級(jí)下冊(cè)第一單元閱讀要素解析 類文閱讀課外閱讀過關(guān)(含答案)
- 2024年大學(xué)試題(管理類)-行政管理學(xué)筆試歷年真題薈萃含答案
- 《爆破振動(dòng)測(cè)試技術(shù)》課件
- 醫(yī)療機(jī)構(gòu)規(guī)章制度目錄
- 中國(guó)地圖素材課件
- 中藥學(xué)知識(shí)歸納總結(jié)
- 彎道超車就趁寒假!-寒假指引主題班會(huì)課件
- 腸梗阻小講課
評(píng)論
0/150
提交評(píng)論