實現VB與EXCEL的無縫連線

2022-04-23 08:09:27 字數 1871 閱讀 3430

[ ]

<>var status0_6562='';

var curfontsize_6562=9;var curlineheight_6562=12;

減小字型

增大字型

vb是常用的應用軟體開發工具之一,由於vb的報表功能有限,而且一但報**式發生變化,就得相應修改程式,給應用軟體的維護工作帶來極大的不便。因此有

很多程式設計師現在已經充分利用execl的強大報表功來實現報表功能。但由於vb與excel由於分別屬於不同的應用系統,如何把它們有機地結合在一起,是

乙個值得我們研究的課題。

一、 vb讀寫excel表:

vb本身提自動化功能可以讀寫excel表,其方法如下:

1、在工程中引用microsoft excel型別庫:

從"工程"選單中選擇"引用"欄;選擇microsoft excel 9.0 object library(excel2000),然後選擇"確定"。表示在工程中要引用excel型別庫。

2、在通用物件的宣告過程中定義excel物件:

3、在程式中操作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打含有啟動巨集的工簿時,就會自動執行啟動巨集,同理,當關閉含有關閉巨集的工作簿時就會自動執行關

閉巨集。但是通過vb的自動化功能來呼叫excel工作表時,啟動巨集和關閉巨集不會自動執行,而需要在vb中通過命令

xlbook.runautomacros (xlautoopen)和xlbook.runautomacros (xlautoclose)

來執行啟動巨集和關閉巨集。

三、 vb與excel的相互勾通:

充分利用excel的啟動巨集和關閉巨集,可以實現vb與excel的相互勾通,其方法如下:

在excel的啟動巨集中加入一段程式,其功能是在磁碟中寫入乙個標誌檔案,同時在關閉巨集中加入一段刪除此標誌檔案的程式。vb程式在執行時通過

判斷此標誌檔案存在與否來判斷excel是否開啟,如果此標誌檔案存在,表明excel物件正在執行,應該禁止其它程式的執行。如果此標誌檔案不存在,表

明excel物件已被使用者關閉,此時如果要使用excel物件執行,必須重新建立excel物件。

四、舉例:

1、在vb中,建立乙個form,在其上放置兩個命令按鈕,將command1的caption屬性改為excel,command2的caption屬性改為end。然後在其中輸入如下程式:

2、在d盤根目錄上建立乙個名為temp的子目錄,在temp目錄下建立乙個名為"bb.xls"的excel檔案。

sub auto_open()

open "d:\temp\excel.bz" for output as #1 '寫標誌檔案

close #1

end sub

sub auto_close()

kill "d:\temp\excel.bz" '刪除標誌檔案

end sub

VB連線Excel檔案

選單 工程 引用 microsoft activex data objects 2.x 找乙個高版本的 private subcommand2 click dimconn asnew adodb.connection dimrs asnew adodb.recordset conn.open pro...

vba cad 獲取巨集的路徑 EXCEL與VBA

巨集的英文名為macro,是自動執行某種操作的命令集合。它包括兩個過程,即excel 4或者稱為xlm的巨集語言和excel 5中的vba巨集。excel 4的巨集由巨集表函式構成,由錄入在巨集表中的函式來控制程式的執行。至1993年發布的excel 5中,微軟開始推廣vba做為巨集語言,並同時引進...

大型場景無縫連線的實現理論基礎

比較主流的方式是兩種 第一種是一開始就把所有場景都add到build的列表裡,也就是說這個工程裡包含了所有的場景。但在遊戲一開始,除了玩家所在的主場景外,其他場景並沒有載入,也就是看不到的。要實現不切屏的效果,需要注意兩個方面 2 場景內的物體用prefab方式來建立,loadlevel時要做相應的...