在學(xué)習(xí)機(jī)房收費(fèi)系統(tǒng)時(shí),對(duì)于查詢+導(dǎo)出的困難,個(gè)人認(rèn)為是導(dǎo)出相對(duì)于我自己比較難,主要有三點(diǎn):
1,我寫過程不熟練;
2,這是excel與vb的結(jié)合使用,由于VB與EXCEL由于分別屬于不同的應(yīng)用系統(tǒng)對(duì)于我來說是一個(gè)挑戰(zhàn);
3,是一個(gè)新的知識(shí)點(diǎn)。
我主要在寫代碼的時(shí)候,主要先了解了vb與Excel之間的關(guān)系。后來在完成了代碼,其步驟如下:
第一步:
一般設(shè)計(jì)窗體時(shí)用到了MSHFlexGrid,MSHFlexGRid ,DataGrid等部件時(shí),會(huì)需要導(dǎo)出一些報(bào)表,就會(huì)調(diào)用Microsoft Office Excel。我首先要連接下Excel的對(duì)象,因?yàn)樵趘b調(diào)用Excel中要用到一些對(duì)象。其對(duì)象如下圖:
1, Application對(duì)象表示Excel運(yùn)用程序本身。作用是提供在相應(yīng)的程序,實(shí)例中當(dāng)前用戶的對(duì)象的信息。如圖所示:
2,Workbook對(duì)象表示Excel應(yīng)用程序的單個(gè)工作簿。主要是vb要制定一個(gè)特定的工作簿。
3,Worksheet對(duì)象就是我們平常在Excel的sheet表。主要是vb指定的一個(gè)特定的sheet表。包含了Range對(duì)象和Cell對(duì)象。range對(duì)象包含了cell對(duì)象。
4,Chart對(duì)象表示工作表中的圖表。
介紹了以上的Excel對(duì)象后,我們?cè)?/span>VB中調(diào)用Excel的時(shí)便會(huì)很清楚對(duì)象的聲明,及位置,在腦海了就已經(jīng)形成一幅Excel表。
第二部:代碼。
在自定義過程中。代碼如下:
- Public Sub ExportExcel(formname As Form, FlexGridName As String) '參數(shù)傳遞
- xlApp As Excel.Application '聲明application對(duì)象,Excel運(yùn)用程序本身。作用是提供在相應(yīng)的程序,實(shí)例中當(dāng)前用戶的對(duì)象的信息。
- Dim xlBook As Excel.WorkBook '聲明workbook。Workbook對(duì)象表示Excel應(yīng)用程序的單個(gè)工作簿。主要是vb要制定一個(gè)特定的工作簿。
- Dim xlSheet As Excel.Worksheet '聲明worksheet。Worksheet對(duì)象就是我們平常在Excel的sheet表。主要是vb指定的一個(gè)特定的sheet表。包含了Range對(duì)象和Cell對(duì)象。
- Screen.MousePointer = 11 'Screen.MousePointer = vbHourglass 'VbHourglass 11 被顯示的鼠標(biāo)指針的類型為沙漏(表示等待狀態(tài))。
- On Error GoTo Err_Proc
- Set XLApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL對(duì)象
- Set XLBook = XLApp.WorkBooks.Add '添加一個(gè)EXCEL工件簿文件并且添加內(nèi)容
- ' Set XLSheet = XLBook.Worksheets("sheet1") '設(shè)置活動(dòng)工作表,表的名字也可以更改,不再敘說
- Set XLSheet = XLBook.WorkSheets(1)
- '將數(shù)據(jù)填入到excel中
- Dim LngRows As Long
- Dim Intcols As Integer
- With formname.Controls(FlexGridName)
- '對(duì)行和列進(jìn)行循環(huán)
- For LngRows = 0 To .Rows - 1
- For Intcols = 0 To .Cols - 1
- XLSheet.Cells(LngRows + 1, Intcols + 1).Value = "'" & .TextMatrix(LngRows, Intcols)
- Next Intcols
- Next LngRows
- End With
- XLApp.Visible = True '顯示當(dāng)前窗口
- XLApp.Caption = "學(xué)生充值記錄查詢" '更改 Excel 標(biāo)題欄
- 'Screen.MousePointer = vbDefault 'vbDefault 0 (缺省值)形狀由對(duì)象決定。
- Screen.MousePointer = 0
- Exit Sub
- Err_Proc:
- Screen.MousePointer = vbDefault 'vbDefault 0 (缺省值)形狀由對(duì)象決定。
- MsgBox "請(qǐng)確認(rèn)您的電腦已安裝Excel!", vbExclamation, "提示"
- End Sub
注:標(biāo)紅色的地方是最容易出錯(cuò)的也是重要的地方。
當(dāng)然有的文章也提及到了加“引用”的問題,以上的代碼是沒有加引用,但是我也測(cè)試了以下:
從"工程"菜單中選擇"引用"欄;選擇Microsoft Excel 14.0 ObjectLibrary(EXCEL2010),然后選擇"確定"。表示在工程中要引用EXCEL類型庫。如圖:
然后再把上溯的代碼敲一遍即可。但是我也不知道加了引用與直接使用的區(qū)別,有待我的研究,如果大家有知道的請(qǐng)留言給我。謝謝。
聯(lián)系客服