VB6 Excel

轉載:http://www.dotblogs.com.tw/yc421206/archive/2009/01/07/6668.aspx

VB6與Excel本是同根生,核心架構都差不多,所以要用VB6讀寫Excel是相當方便的;唯一要特別注意,若 是要由VB控制Excel讀寫大量的資料,千萬不要用迴圈的方式一格一格讀寫,如果你那樣做的話,程式跑起來會很慢很慢,我知道兩種方式

1.引用Excwl Application,並用陣列進行資料寫讀;優 點,相當靈活等於是在操作Excel、效能佳(比不上OLEDB)。缺點,需要花時間瞭解Excel的物件模型

開啟Excel→按ALT+F11→按F1→此時會出現說明,若沒有出現表示沒安裝,快去裝吧→按Microsoft Excel 物件模型。就可以查詢Excel模型

2.引用OLEDB進行資料寫入讀出;優點,此法讀 寫資料是最快,效能最佳。缺點,但不靈活,有可能你不單單只是要讀寫資料

下圖為Excel模型

1

接下來就直接進入主題,

第一步:前期綁定 Excel,更方便的操作Excel,不用背模型語法(會有版本的問題,若擔心版本問題請採用後期綁定)

2 3

第二步:引用Excel

  '#一部電腦僅執行一個Excel Application, 就算中突開啟Excel也不會影響程式執行

  '#在工作管理員中只會看見一個EXCEL.exe在執行,不會浪費電腦資源

  '#引用正在執行的Excel Application

  Set xlApp = GetObject(, "Excel.Application")

  '#若發生錯誤表示電腦沒有Excel正在執行,需重新建立一個新的應用程式

  If Err <> 0 Then

    Err.Clear

    '#執行一個新的Excel Application

    Set xlApp = CreateObject("Excel.Application")

    If Err <> 0 Then

      MsgBox "電腦沒有安裝Excel"

      End

    End If

  End If

 

第三步:讀寫Excel

  '#Excel活頁簿設定

  '===================================================

  '打開已經存在的EXCEL工件簿文件

  Set xlBook = xlApp.Workbooks.Open(App.Path & "\" & "Sample.xlt")

  '停用警告訊息

  xlApp.DisplayAlerts = False

  '設置EXCEL對象可見

  xlApp.Visible = True

  '設定活頁簿為焦點

  xlBook.Activate

  '顯示第一個子視窗

  xlBook.Parent.Windows(1).Visible = True

  '引用第一個工作表

  Set xlSheet = xlBook.Worksheets(1)

  '設定工作表為焦點

  xlSheet.Activate

 

  '===================================================

  '#用Array寫資料至EXCEL

  Dim myRows As Long, myCols As Long

 

  myRows = UBound(DataArray, 1)

  myCols = UBound(DataArray, 2)

  '選擇儲存格範圍

  xlSheet.Range(cells(2, 1), cells(myCols, myRows)).Select

  '陣列一次寫入Excel

  xlSheet.Range(cells(2, 1), cells(myCols, myRows)).Value = xlApp.Transpose(DataArray)

  '呼叫Excel巨集

  xlApp.Run ("Sample.xlt" & "!Caculater")

  '另存新檔

  xlBook.SaveAs App.Path & "\" & "TETS.XLS"

  '關閉EXCEL

  xlApp.Quit

 

Excel 的功能太多了,無法詳細敘述,請參考之前在網路上整理的EXCEL VBA語法[VBA] Excel VBA 指令

範例下載:VB6讀 EXCEL.rar