Lập trình VB6 để thao tác với Excel (3 người xem)

  • Thread starter Thread starter phungms
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

phungms

Thành viên mới
Tham gia
22/4/11
Bài viết
13
Được thích
1
Chào các trước. Hiện nay mình đang làm báo cáo hiệu suất của nhà máy bằng Excel mình có nghe các anh đi trước nói có thể dùng VB6 để viết và truy xuất Excel. Vậy anh em nào có thể cho mình biết bây giờ mình bắt đầu từ đâu không? Nếu bạn nào có các bài mẫu cho mình xin nha.

Thanks All
Phung NT.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Chào bạn,

Tôi xin giới thiệu một số bước cơ bản:

1. Tạo đối tượng tham chiếu đến Excel

Theo cách khai báo trễ
Mã:
' Khai báo biến
Dim oXL As Object
' Tạo đối tượng Excel
Set oXL = CreateObject("Excel.Application")

Nếu các bạn muốn thao tác với một instance (chưa biết nói sao cho chuẩn xác) của Excel (Nếu Excel đã được mở), bạn có thể dùng code sau:

Mã:
Dim oXL As Object
Set oXL = GetObject(, "Excel.Application")

Theo cách khai báo sớm

Nếu các bạn có tham chiếu đến đối tượng Excel trong Reference, thì các bạn có thể dùng đoạn code sau:

Mã:
Dim oXL As Excel.Application
Set oXL = New Excel.Application

2. Mở Excel

Mã:
Dim oXLApp As Excel.Application       
Set oXLApp = New Excel.Application 
' Cho hiện Excel 
oXLApp.Visible = True   
' Đóng Excel và giải phóng biến            
Set oXLApp = Nothing


3. Tạo và mở Workbook

Tạo một workbook mới

Mã:
Dim oXLApp As Excel.Application      
Dim oXLBook As Excel.Workbook
Set oXLApp = New Excel.Application  
' Thêm một workbook
Set oXLBook = oXLApp.Workbooks.Add  
' Cho hiện workbook
oXLApp.Visible = True
' Giải phóng biến               
Set oXLBook = Nothing               
Set oXLApp = Nothing


Để mở một workbook sẵn có

Bạn thay câu lệnh

Mã:
Set oXLBook = oXLApp.Workbooks.Add

Bằng câu lệnh
Mã:
Set oXLBook = oXLApp.Workbooks.Open("C:\TestOpen.xls")

Thông thường khi mở một workbook mới thì số sheet nó sẽ tùy thuộc vào thiết lập trong Excel Options.
Bạn có thể thay đổi số sheet trong một workbook mới tạo bằng code như sau:

Mã:
Set oXLApp = New Excel.Application 
' Biến số sheet được tạo trong workbook mới
Dim iSheetsPerBook As Integer         
iSheetsPerBook = oXLApp.SheetsInNewWorkbook
oXLApp.SheetsInNewWorkbook = 3 ' Giả sử là 3 sheet trong một workbook mới
Set oXLBook = oXLApp.Workbooks.Add
oXLApp.SheetsInNewWorkbook = iSheetsPerBook
oXLApp.Visible = True

Lê Văn Duyệt
Nguồn: VBForum
 
Lần chỉnh sửa cuối:
4. Chuẩn bị làm việc với dữ liệu trong Excel
Khai báo trễ

Mã:
Dim oXLApp As Object 
Dim oXLBook As Object
Dim oXLSheet As Object
Set oXLApp = CreateObject("Excel.Application")
Set oXLBook = oXL.Workbooks.Open("C:\TestOpen1.xls")
Set oXLSheet = oXLBook.Worksheets(1)


Khai báo sớm
Mã:
Dim oXLApp As Excel.Application         
Dim oXLBook As Excel.Workbook
Dim oXLSheet As Excel.Worksheet

Set oXLApp = CreateObject("Excel.Application")
Set oXLBook = oXL.Workbooks.Open("C:\TestOpen1.xls")
Set oXLSheet = oXLBook.Worksheets(1)
Code ở trên là ta sẽ mở một workbook mới và làm việc với sheet đầu tiên.

Code ở trên là chưa đủ nếu bạn muốn cho người dùng thấy và thao tác với này, bạn cần thêm code sau:

Mã:
oXLApp.Visible = True               
Set oXLSheet = Nothing               
Set oXLBook = Nothing
Set oXLApp = Nothing

Nếu muốn lưu workbook hiện tại (bạn đang mở ra)

Mã:
Set oXLSheet = Nothing     
' Đóng và lưu những thay đổi
' Nếu không muốn lưu thì bạn thiết lập là False        
oXLBook.Close SaveChanges:=True   
Set oXLBook = Nothing
oXLApp.Quit                       
Set oXLApp = Nothing


Nếu muốn lưu qua một tập tin mới thì
Mã:
Set oXLSheet = Nothing                      
oXLBook.SaveAs "C:\TestExcel2.xls"  
oXLBook.Close SaveChanges:=False
Set oXLBook = Nothing
oXLApp.Quit                                  
Set oXLApp = Nothing


Lê Văn Duyệt

Nguồn: VBForum
 
Lần chỉnh sửa cuối:
5. Đọc và ghi dữ liệu vào Excel

Các bạn có thể dùng các đối tượng như Cells, Range,... để làm việc với dữ liệu trong Excel.

Đọc dữ liệu

Đọc dữ liệu ở sheet hiện tại, tại A2, gán vào biến my_variable
Mã:
my_variable = oXLSheet.Cells(2, 1).Value

Hoặc
Mã:
my_variable = oXLSheet.Range("A2").Value ' Có thể không cần Value vì đó là thuộc tính mặc định

Gán dữ liệu

Mã:
my_variable = "Xin chào"
oXLSheet.Cells(2, 1).Value = my_variable

Hoặc
Mã:
oXLSheet.Range("A2") = "Xin chào"

Bạn có thể sử dụng các thuộc tính để thiết lập các công thức cho các ô:

Mã:
oXLSheet.Cells(2, 1).Formula = "=A1 + 10"

Khi làm việc với Excel trong VB6, cách tốt nhất là chúng ta sẽ làm việc dựa trên biến mảng.
Ví dụ:
Mã:
Dim vArr As Variant
vArr = oXLSheet.Range("A1:D100")
Sau đó ta sẽ thao tác với dữ liệu dựa trên biến này.

Lê Văn Duyệt

Nguồn: VBForum
 
Thanks bạn đã chia sẽ.
Bạn có tài liệu nào viết về cái này không? share cho mình với.
 
Web KT

Bài viết mới nhất

Back
Top Bottom