當前位置:編程學習大全網 - 源碼下載 - EXCEL中VB代碼中如何創建壹個獨立的方法(函數),怎麽聲明

EXCEL中VB代碼中如何創建壹個獨立的方法(函數),怎麽聲明

vb操作EXCEL表的常用方法

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

壹、 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") '創建EXCEL對象

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

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

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

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

XLApp.Cells(i, 1).Interior.ColorIndex = i'設計單元格顏色i=1--56

xlSheet.PrintOut '打印工作表

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

xlApp.Quit '結束EXCEL對象

Set xlApp = Nothing '釋放xlApp對象

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

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

自己用代碼就可以獲取顏色列表了

Sub yansecode()

For i = 1 To 56

XlApp.Cells(i, 1) = i

xlapp.Cells(i, 1).Interior.ColorIndex = i

Next

End Sub

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。然後在其中輸入如下程序:

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") '創建EXCEL應用類

xlApp.Visible = True '設置EXCEL可見

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

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

xlApp .Activate '激活工作表

xlApp .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關閉EXCEL

xlBook.RunAutoMacros (xlAutoClose) '執行EXCEL關閉宏

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

xlApp.Quit '關閉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系統,打開EXCEL系統後,VB程序和EXCEL分別屬兩個不同的應用系統,均可同時進行操作,由於系統加了判斷,因此在VB程序中重復點擊EXCEL按鈕時會提示EXCEL已打開。如果在EXCEL中關閉EXCEL後再點EXCEL按鈕,則會重新打開EXCEL。而無論EXCEL打開與否,通過VB程序均可關閉EXCEL。這樣就實現了VB與EXCEL的無縫連接。

範例壹

Option Explicit

Private Sub Command1_Click()

Dim xlApp As Excel.Application

Dim xlBook As Excel.Workbook

Dim xlChar As New Excel.Chart

Dim xlSheet As New Excel.Worksheet

'建立需要的對象

Set xlApp = New Excel.Application

Set xlApp = CreateObject("Excel.Application")

Set xlBook = xlApp.Workbooks.Open("F:\BOOK1.xls")

Set xlSheet = xlBook.Worksheets(1)

'建立Chart 對象

Set xlChar = xlApp.Charts.Add()

xlChar.ChartType = xlLineMarkers

Call xlChar.SetSourceData(xlSheet.Range("A1:E7"), xlColumns) '原數據

ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"

ActiveChart.HasLegend = True

ActiveChart.Legend.Select

Selection.Position = xlRight

'選中建立的ChartObjects對象

ActiveSheet.ChartObjects("圖表 1").Activate

ActiveChart.PlotArea.Select

ActiveChart.Legend.Select

'刪除 退出(&X) 菜單

Dim i As Integer

For i = 1 To xlApp.CommandBars("File").Controls.Count

Debug.Print xlApp.CommandBars("File").Controls(i).Caption

If Left$(xlApp.CommandBars("File").Controls(i).Caption, 2) = "關閉" Then

xlApp.CommandBars("File").Controls(i).Visible = False 'Delete

Exit For

End If

Next

'顯示EXCEL

xlApp.Visible = True

End Sub

範例二

RichTextBox1

Dim xlApp As Excel.Application

Set xlApp = New Excel.Application

---- 然後,可以用這些變量來訪問在EXCEL應用程序中的從屬對象、以及這些對象的屬性和方法。例如:

Set xlApp = CreateObject("Excel.Application")

‘激活EXCEL應用程序

xlApp.Visible = False ‘隱藏EXCEL應用程序窗口

Set xlBook = xlApp.Workbooks.Open(strDestination)

‘打開工作簿,strDestination為壹個EXCEL報表文件

Set xlSheet = xlBook.Worksheets(1)

‘設定工作表

VB借助EXCEL實現表格設計

1、定義EXCEL對象變量

dim x as excel.application

2、VB中,啟動EXCEL

set x=createobject("excel.application")

3、新建壹個EXCEL工作簿

x.workbooks.add

4、選定工作表1

set xsheet=xbook.worksheets(1)

5、指定單元格,並賦值

xsheet.cell(1,1)=ret.fields(0)

6、指定EXCEL列寬

xsheet.column(1).columnwidth=10

7、RANGE()函數,選定單元格區域

range(cells(1,1),cells(10,20))

8、設置EXCEL字體

xsheet.range(cells(1,1),cells(10,20)).font.name="黑體"

9、設置EXCEL為粗體

xsheet.range(cells(1,1),cells(10,20)).fontbold=true

10、設置EXCEL表格邊框

xsheet.range(cells(1,1),cells(10,20)).borders.linestyle=xlcontinuous

11、運行時,顯示EXCEL或隱藏EXCEL

x.visible=true

12、保存工作簿

xbook save

13、退出EXCEL

x.quit

14、交還控制權給EXCEL

set x=nothing

15、打印EXCEL表

x.active.window.selectedsheets.printout copies=numcopies

16、退出EXCEL時,不出現保存提示。

x.displayalerts=false

17、怎樣運用EXCEL公式?

x.range("A3").formula= "=max(A1,A2)"

18、EXCEL代碼獲取技巧

打開EXCEL中的工具----宏----錄制新宏,然後進行手工操作,結束後把所錄的宏代碼貼進妳的VB程序就行。

19、合並單元格代碼

x.range("A2:A5").mergecells=true

20、自動調整列寬代碼

x.column("A:I").autofit ' a到 I列自動調整列寬

21、文本自動換行代碼

x.rows(3).wraptext=true

22、設置字體顏色

x.rows(1).font.colorindex=4

23、打印預覽代碼

x.worksheets.printpreview

24、打開EXCEL文件

x.workbooks.open filename:="c:\my documents\my vb \lgx \dy.xls"

  • 上一篇:微點案是怎麽回事?
  • 下一篇:在湖南開發壹個購物app要多少錢?湖南app公司推薦
  • copyright 2024編程學習大全網