機房管理系統——VB與Excel的連結,機房管理系統excel

來源:互聯網
上載者:User

機房管理系統——VB與Excel的連結,機房管理系統excel

今天在敲機房管理系統——學生查看上機狀態的時候發現有一個“匯出為excel”的按鈕。我去,感情還得跟excel錶鏈接。於是我咬碎了一地小銀牙,一個下午都在查詢vb與excel的連結的問題。

      我大體的思路是:

      首先,在vb中引用Excel類型庫。



其次,聲明excel的對象。這裡不單單只是聲明一個excel表,還要聲明活頁簿和工作表

                   如下代碼:

  

Dim xlApp As Excel.Application

  

Dim xlBook As Excel.Workbook

  

Dim xlSheet As Excel.Worksheet

 

最後,就可以在vb程式對excel表進行操作。

在機房管理系統中基本的操作有:               

 

Set xlApp = CreateObject("Excel.Application") '建立EXCEL應用類

 

xlApp.Visible = True '設定EXCEL可見

 

Set xlBook = xlApp.Workbooks.Open(App.Path & "\建立 Microsoft Excel 工作表.xls") '開啟EXCEL活頁簿

 

Set xlSheet = xlBook.Worksheets(1) '開啟EXCEL工作表

 

xlSheet.Activate '啟用工作表

 

xlSheet.Cells(1, 1) = myflexgrid.TextMatrix(0, 0)……'給單元格1行駛列賦值

 

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

另外,還有一些拓展的操作:

  

xlSheet.PrintOut '列印工作表

xlBook.Close (True) '關閉活頁簿

xlApp.Quit '結束EXCEL對象

Set xlApp = Nothing '釋放xlApp對象

問題1(excel宏的作用):

EXCEL提供一個VisualBasic編輯器,開啟VisualBasic編輯器,其中有一工程屬性視窗,點擊右鍵菜單的"插入模組",則增加一個"模組1",在此模組中可以運用VisualBasic語言編寫函數和過程並稱之為宏。其中,EXCEL有兩個自動宏:一個是啟動宏(Sub Auto_Open()),另一個是關閉宏(SubAuto_Close())。它們的特性是:當用EXCEL打含有啟動宏的工簿時,就會自動運行啟動宏,同理,當關閉含有關閉宏的活頁簿時就會自動運行關閉宏。但是通過VB的自動化功能來調用EXCEL工作表時,啟動宏和關閉宏不會自動運行,而需要在VB中通過命令xlBook.RunAutoMacros(xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose)來運行啟動宏和關閉宏。(我的理解就是EXCEL中的VBA就是VB在EXCEL中的應用)

問題2(下標越界):

 



面對著問題應該出在flexgrid控制項上,你在設計介面時把初始列數9,既可以解決了。

 

特別說明:

在運用以上VB命令操作EXCEL表時,除非設定EXCEL對象不可見,否則VB程式可繼續執行其它操作,也能夠關閉EXCEL,同時也可對EXCEL進行操作。但在EXCEL操作過程中關閉EXCEL對象時,VB程式無法知道,如果此時使用EXCEL對象,則VB程式會產生自動化錯誤。形成VB程式無法完全控制EXCEL的狀況,使得VB與EXCEL脫節。 


vb與excel連結時excel的安裝路徑問題

可能是引用的版本號碼問題,2007的版本號碼和2003不同,到了2003哪裡,原來那個引用會報告丟失。
 
VB怎與EXCEL聯絡

先將“工程-引用”中Microsoft Excel……選中
Private Sub Command1_Click()
Dim xl As Excel.Application
Dim xlbook As Excel.Workbook
Set xl = CreateObject("excel.application")
xl.Visible = False
Dim st As Excel.Worksheet
Set xlbook = xl.Workbooks.Open(App.Path & "\date.xls")
Set st = xlbook.Worksheets(1)
Dim i As Integer
i = 1
Do While st.Cells(i, 1).Value <> ""
List1.AddItem st.Cells(i, 1).Value
i = i + 1
Loop
Set xl = Nothing
Set xlbook = Nothing
End Sub

一些說明:
'首先要將“工程-引用”中的Mic… Excel…選中
'Set xlBook = xlApp.Workbooks.Open("檔案名稱") '開啟已經存在的EXCEL工件簿檔案
'xlApp.Visible = True '設定EXCEL對象可見(或不可見)
'Set xlSheet = xlBook.Worksheets("表名") '設定使用中工作表
'Range("K12").Select 設定作用儲存格
'xlSheet.Cells(Row, col) = 值 '給儲存格(row,col)賦值
'xlSheet.PrintOut '列印工作表
'xlBook.Close (True) '關閉活頁簿
'xlApp.Quit '結束EXCEL對象
'Set xlApp = Nothing '釋放xlApp對象.
'xlBook.RunAutoMacros (xlAutoOpen) '運行EXCEL啟動宏
'xlBook.RunAutoMacros (xlAutoClose) '運行EXCEL關閉宏
'xlBook.Worksheets.Count '活頁簿標籤總數
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.