首先,VB讀寫EXCEL表格:
VB本身提供了讀寫EXCEL表格的自動化功能,其方法如下:
1,引用工程中的Microsoft Excel類型庫:
從“項目”菜單中選擇“參考”欄;選擇Microsoft excel 9.0對象庫(excel 2000),然後選擇“確定”。指示將在項目中引用EXCEL類型庫。
2.在聲明通用對象的過程中定義EXCEL對象:
將xlApp調成Excel。應用
將xlBook調成Excel。練習本
將xlSheet調成Excel格式。工作表
3.在程序中操作EXCEL表格的常用命令:
Set xlapp = createobject ("EXCEL。應用程序")'創建壹個Excel對象。
設置xlBook = xlApp。Workbooks.Open("文件名")'打開現有的EXCEL工作簿文件。
XlApp。Visible = True '將EXCEL對象設置為可見(或不可見)。
設置xlSheet = xlBook。Worksheets ("table name ")'設置活動工作表。
XlSheet。Cells(row,col) = value '為單元格(row,col)賦值。
XlSheet。“打印輸出”打印工作表。
XlBook。Close (True)'關閉工作簿。
XlApp。“退出”結束EXCEL對象。
' Set xlApp = Nothing '釋放xlApp對象。
Xlbook。runautomacro(xlautoopen)'運行EXCEL啟動宏。
XL book . runautomacros(xlautoclose)'運行EXCEL以關閉宏。
4.使用上述VB命令操作EXCEL表格時,除非將EXCEL對象設置為不可見,否則VB程序可以繼續執行其他操作,關閉EXCEL,同時操作EXCEL。但是,當EXCEL對象在EXCEL操作過程中被關閉時,VB程序無法知道。如果此時使用EXCEL對象,VB程序會產生自動化錯誤。VB程序不能完全控制EXCEL的情況,使得VB與EXCEL脫節。
二、EXCEL的宏功能:
EXCEL提供了壹個Visual Basic編輯器。打開Visual Basic編輯器,它有壹個工程屬性窗口。在右鍵菜單中點擊“插入模塊”,增加壹個“模塊1”,模塊中的函數和過程可以用Visual Basic語言編寫,調用宏。其中,EXCEL有兩個自動宏:壹個是開始宏(Sub Auto_Open()),壹個是關閉宏(Sub Auto_Close())。它們的特點是:使用EXCEL鍵入包含啟動宏的工作簿時,會自動運行啟動宏。同樣,當關閉包含shutdown宏的工作簿時,它將自動運行shutdown宏。但是當通過VB的自動化功能調用EXCEL工作表時,啟動宏和關機宏不會自動運行,而是需要通過命令xlbook來運行啟動宏和關機宏。Runautomacros (xlautoopen)和xlbook。VB中的Runautomacros (xlautoclose)。
三、VB與EXCEL的通信:
充分利用EXCEL的啟動宏和關閉宏實現VB與EXCEL的通信。這些方法如下:
在EXCEL的啟動宏中添加壹個程序,其作用是在磁盤中寫入壹個標誌文件,同時在關機宏中添加壹個刪除這個標誌文件的程序。VB程序在執行時通過判斷這個標誌文件是否存在來判斷EXCEL是否打開。如果這個標誌文件存在,說明EXCEL對象正在運行,應該禁止其他程序運行。如果這個標誌文件不存在,說明EXCEL對象已經被用戶關閉。此時,如果要使用EXCEL對象運行,必須重新創建EXCEL對象。
第四,例如:
1.在VB中,創建壹個窗體,在上面放兩個命令按鈕,將Command1的Caption屬性改為EXCEL,將Command2的Caption屬性改為End。然後在其中輸入以下程序:
Dimxlappasasexcel。“應用程序”定義了EXCEL類。
將xlBook調成Excel。“工作簿”定義工作簿類。
將xlsheet調成Excel格式。“Worksheet”定義工作表類。
Private Sub命令1_Click()'打開EXCEL程序。
Ifdir ("d: \ temp \ excel.bz") = " "然後'判斷excel是否打開。
Set xlapp = createobject ("EXCEL。application ")'創建Excel應用程序類。
XlApp。“Visible = True”將EXCEL設置為可見。
set XL book = XL app . workbooks . Open(" d:\ temp \ bb . xls ")'打開EXCEL工作簿。
set XL sheet = XL book . worksheets(1)'打開EXCEL工作表。
Xlsheet。“激活”激活工作表。
Xlsheet。cells (1,1) = "ABC " '為單元格1的行列賦值。
XL book . runautomacros(xlautoopen)在EXCEL中運行啟動宏。
其他
MsgBox ("EXCEL已打開")
如果…就會結束
末端接頭
私有子命令2_Click()
if Dir(" D:\ temp \ excel . BZ ")& lt;& gt" "然後用VB關閉EXCEL。
Xlbook。runautomacros (xlautoclose)'執行EXCEL關閉宏。
XlBook。“關閉(True)”關閉EXCEL工作簿。
XlApp。退出並關閉EXCEL。
如果…就會結束
' Set xlApp = Nothing '釋放EXCEL對象。
結束
末端接頭
2.在D盤根目錄下創建壹個名為Temp的子目錄,在Temp目錄下創建壹個名為“bb.xls”的EXCEL文件。
3.在“bb.xls”中打開Visual Basic編輯器,在項目窗口中單擊鼠標按鈕選擇插入模塊,在模塊中輸入下壹個程序保存:
Sub auto_open()
打開“d: \ temp \ excel.bz”作為# 1 '寫標誌文件輸出。
關閉#1
末端接頭
Sub auto_close()
Kill "d:\temp\excel.bz " '刪除標誌文件。
末端接頭
4.運行VB程序,點擊EXCEL按鈕打開EXCEL系統。打開EXCEL系統後,VB程序和EXCEL屬於兩個不同的應用系統,兩者可以同時操作。因為系統增加了判斷,所以在VB程序中反復點擊EXCEL按鈕會提示EXCEL已經打開。如果在EXCEL中關閉EXCEL,然後單擊EXCEL按鈕,EXCEL將會重新打開。無論EXCEL是否打開,都可以通過VB程序關閉EXCEL。這樣就實現了VB和EXCEL的無縫連接。