vb.net激活工作簿 vb打開工作簿

vb.net 表格 如何做出這樣的表格 可以隨時修改的

VB是常用的應用軟件開發(fā)工具之一,由于VB的報表功能有限,而且一但報表格式發(fā)生變化,就得相應修改程序,給應用軟件的維護工作帶來極大的不便。因此有很多程序員現(xiàn)在已經(jīng)充分利用EXECL的強大報表功來實現(xiàn)報表功能。但由于VB與EXCEL由于分別屬于不同的應用系統(tǒng),如何把它們有機地結(jié)合在一起,是一個值得我們研究的課題。

公司專注于為企業(yè)提供成都網(wǎng)站設(shè)計、做網(wǎng)站、微信公眾號開發(fā)、商城系統(tǒng)網(wǎng)站開發(fā),重慶小程序開發(fā),軟件按需求定制開發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務。憑借多年豐富的經(jīng)驗,我們會仔細了解各客戶的需求而做出多方面的分析、設(shè)計、整合,為客戶設(shè)計出具風格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)建站更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務。

一、 VB讀寫EXCEL表:

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

1、在工程中引用Microsoft Excel類型庫:

從"工程"菜單中選擇"引用"欄;選擇Microsoft Excel 9.0 Object Library(EXCEL2000),然后選擇"確定"。表示在工程中要引用EXCEL類型庫。

2、在通用對象的聲明過程中定義EXCEL對象:

Dim xlApp As Excel.Application

Dim xlBook As Excel.WorkBook

Dim xlSheet As Excel.Worksheet

3、在程序中操作EXCEL表常用命令:

Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL對象

Set xlBook = xlApp.Workbooks.Open("文件名") '打開已經(jīng)存在的EXCEL工件簿文件

xlApp.Visible = True '設(shè)置EXCEL對象可見(或不可見)

Set xlSheet = xlBook.Worksheets("表名") '設(shè)置活動工作表

xlSheet.Cells(row, col) =值 '給單元格(row,col)賦值

xlSheet.PrintOut '打印工作表

xlBook.Close (True) '關(guān)閉工作簿

xlApp.Quit '結(jié)束EXCEL對象

Set xlApp = Nothing '釋放xlApp對象

xlBook.RunAutoMacros (xlAutoOpen) '運行EXCEL啟動宏

xlBook.RunAutoMacros (xlAutoClose) '運行EXCEL關(guān)閉宏

4、在運用以上VB命令操作EXCEL表時,除非設(shè)置EXCEL對象不可見,否則VB程序可繼續(xù)執(zhí)行其它操作,也能夠關(guān)閉EXCEL,同時也可對EXCEL進行操作。但在EXCEL操作過程中關(guān)閉EXCEL對象時,VB程序無法知道,如果此時使用EXCEL對象,則VB程序會產(chǎn)生自動化錯誤。形成VB程序無法完全控制EXCEL的狀況,使得VB與EXCEL脫節(jié)。

二、 EXCEL的宏功能:

EXCEL提供一個Visual Basic編輯器,打開Visual Basic編輯器,其中有一工程屬性窗口,點擊右鍵菜單的"插入模塊",則增加一個"模塊1",在此模塊中可以運用Visual Basic語言編寫函數(shù)和過程并稱之為宏。其中,EXCEL有兩個自動宏:一個是啟動宏(Sub Auto_Open()),另一個是關(guān)閉宏(Sub Auto_Close())。它們的特性是:當用EXCEL打含有啟動宏的工簿時,就會自動運行啟動宏,同理,當關(guān)閉含有關(guān)閉宏的工作簿時就會自動運行關(guān)閉宏。但是通過VB的自動化功能來調(diào)用EXCEL工作表時,啟動宏和關(guān)閉宏不會自動運行,而需要在VB中通過命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 來運行啟動宏和關(guān)閉宏。

三、 VB與EXCEL的相互勾通:

充分利用EXCEL的啟動宏和關(guān)閉宏,可以實現(xiàn)VB與EXCEL的相互勾通,其方法如下:

在EXCEL的啟動宏中加入一段程序,其功能是在磁盤中寫入一個標志文件,同時在關(guān)閉宏中加入一段刪除此標志文件的程序。VB程序在執(zhí)行時通過判斷此標志文件存在與否來判斷EXCEL是否打開,如果此標志文件存在,表明EXCEL對象正在運行,應該禁止其它程序的運行。如果此標志文件不存在,表明EXCEL對象已被用戶關(guān)閉,此時如果要使用EXCEL對象運行,必須重新創(chuàng)建EXCEL對象。

四、舉例:

1、在VB中,建立一個FORM,在其上放置兩個命令按鈕,將Command1的Caption屬性改為EXCEL,Command2的Caption屬性改為End。然后在其中輸入如下程序:

Dim xlApp As Excel.Application '定義EXCEL類

Dim xlBook As Excel.Workbook '定義工件簿類

Dim xlsheet As Excel.Worksheet '定義工作表類

Private Sub Command1_Click() '打開EXCEL過程

If Dir("D:\temp\excel.bz") = "" Then '判斷EXCEL是否打開

Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL應用類

xlApp.Visible = True '設(shè)置EXCEL可見

Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls") '打開EXCEL工作簿

Set xlsheet = xlBook.Worksheets(1) '打開EXCEL工作表

xlsheet.Activate '激活工作表

xlsheet.Cells(1, 1) = "abc" '給單元格1行駛列賦值

xlBook.RunAutoMacros (xlAutoOpen) 運行EXCEL中的啟動宏

Else

MsgBox ("EXCEL已打開")

End If

End Sub

Private Sub Command2_Click()

If Dir("D:\temp\excel.bz") "" Then '由VB關(guān)閉EXCEL

xlBook.RunAutoMacros (xlAutoClose) '執(zhí)行EXCEL關(guān)閉宏

xlBook.Close (True) '關(guān)閉EXCEL工作簿

xlApp.Quit '關(guān)閉EXCEL

End If

Set xlApp = Nothing '釋放EXCEL對象

End

End Sub

2、在D盤根目錄上建立一個名為Temp的子目錄,在Temp目錄下建立一個名為"bb.xls"的EXCEL文件。

3、在"bb.xls"中打開Visual Basic編輯器,在工程窗口中點鼠標鍵選擇插入模塊,在模塊中輸入入下程序存盤:

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

4、運行VB程序,點擊EXCEL按鈕可以打開EXCEL系統(tǒng),打開EXCEL系統(tǒng)后,VB程序和EXCEL分別屬兩個不同的應用系統(tǒng),均可同時進行操作,由于系統(tǒng)加了判斷,因此在VB程序中重復點擊EXCEL按鈕時會提示EXCEL已打開。如果在EXCEL中關(guān)閉EXCEL后再點EXCEL按鈕,則會重新打開EXCEL。而無論EXCEL打開與否,通過VB程序均可關(guān)閉EXCEL。這樣就實現(xiàn)了VB與EXCEL的無縫連接。

vb 選擇需要的excel工作簿

由于代碼不全,我自建工程試了你的問題.你自己代入吧.

主要原因application下有好多window,所以不能直接激活,獲取application后要指定windows索引(如Command2下的代碼).

Application.Visible = True也很重要

可以通過激活工作薄的方法激活(如Command1下的代碼),推薦用這種.

以下兩種方法我均經(jīng)過調(diào)試可以實現(xiàn)

Private Sub Command1_Click()

Dim Wb As Excel.Workbook

Set Wb = GetObject("d:\Book2.xls")

Wb.Application.Visible = True

Wb.Activate

End Sub

Private Sub Command2_Click()

Dim Wb As Excel.Application

Set Wb = GetObject("d:\Book2.xls").Application

Wb.Visible = True

Wb.Windows(1).Activate

Wb.Windows(2).Activate

End Sub

excel VB 轉(zhuǎn)到已打開的某個工作簿?

Workbooks("庫位表(22).xlsx").Activate '激活工作簿

Worksheets("庫位表").Select '選中工作表

【說明】:

Select方法,只能選中可見的工作表,如果用Select方法去選中隱藏的工作表會報錯。

Activate方法,能激活可見的工作表,還能激活隱藏的工作表,注意這里說的是激活,不是說讓隱藏的工作表顯示出來。

所以工作表的代碼也可以寫成下面這樣:

Worksheets("庫位表").Activate '激活工作表

【工作表名稱的三種寫法】:

Sheet1.Select

這種是工作表的大名,在VBA編輯器的左側(cè)欄中能看到每張工作表的大名。

工作表的大名是不能重命名的,不受順序影響。

上面這句的意思是指,工作表集合中,大名叫Sheet1的那張工作表。

Worksheets("庫位表").Select

這種是用工作表的小名,在底部的左下角能看到每張工作表的小名。

工作表的小名是可以重命名的,不受順序影響。

上面這句的意思是指,工作表集合中,名稱叫做庫位表的那張工作表。

Worksheets(1).Select

這種是用工作表的順序號來稱呼工作表,從左邊算起,受順序影響。

上面這句的意思是指,工作表集合中,不論表名叫哈,從左邊算起的第1張工作表。

用順序號來稱呼工作表時,有可能指的不是同一張表,比如工作表的順序被移動了,哪一張表被放在了第1張的位置,那么它就是指的哪一張表。

【另外】:

上面的Worksheets也可以直接寫為Sheets

比如:

Worksheets("庫位表").Select 可以寫為 Sheets("庫位表").Select

Worksheets(1).Select?可以寫為?Sheets(1).Select

但是意義不一樣:

Worksheets僅指工作表這一類表的集合。

Sheets的范圍更廣,是指的工作表、圖表、宏表、對話框表,這四類表的集合。

如果你的工作簿中,只創(chuàng)建了工作表,沒有另外的三類表,那么用Worksheets或Sheets都一樣。

excel中用vba激活一個工作簿

方法:循環(huán)所有工作簿,檢查工作簿名稱,前面有“材料”二字時,就激活這個工作簿。具體代碼如下:

Sub?激活材料工作簿()

Dim?Wo?As?Workbook

For?Each?Wo?In?Workbooks

If?Wo.Name?Like?"材料*"?Then

Wo.Activate

Exit?Sub

End?If

Next

End?Sub

當前題目:vb.net激活工作簿 vb打開工作簿
網(wǎng)頁URL:http://muchs.cn/article4/hjscoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站導航、商城網(wǎng)站、企業(yè)建站、面包屑導航、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)