Trả lời :
Yêu cầu của bạn gồm 2 vấn đề chính:
- Truy xuất
nội dung từng cell trong bảng tính Excel. Hai phương pháp đơn giản, tin cậy nhất để truy xuất nội dung bảng tính Excel là: hoặc dùng các
đối tượng "Excel Automation Server", hoặc dùng các đối tượng ADO để truy xuất file Excel như là cơ sở
dữ liệu.
- Xử lý đối tượng MSFlexGrid thông qua các thuộc tính, các tác vụ của nó.
Sau đây là qui trình điển hình để xây dựng 1 ứng dụng VB 6.0 đơn giản, demo việc
hiển thị vùng dữ liệu nằm trong các cell từ A1:J20 trên worksheet có tên là "Sheet1" nằm trên file Excel "c:\userData.xls" lên đối tượng MSFlexGrid của VB 6.0:
1. Chạy VB 6.0, tạo Project mới thuộc loại "Standard EXE" (loại Project mặc định có 1 Form giao diện rỗng ban đầu).
2. Chọn menu Project.References để hiển thị cửa sổ References. Duyệt tìm và chọn mục "Microsoft Excel x.y Object Library" để "add" các đối tượng truy xuất file Excel vào Project. Lưu ý x.y là chỉ số version của thư viện các đối tượng Excel được cài trên máy bạn.
3. Chọn menu Project.Components để hiển thị cửa sổ Components. Duyệt tìm và đánh dấu chọn mục "Microsoft FlexGrid Controls 6.0" để "add" đối tượng MSFlexGrid vào Project.
4. Vẽ 1 button trên Form có tên mặc định là Command1.
5. Vẽ 1 đối tượng MSFlexGrid lên Form,
thiết lập giá trị các thuộc tính sau của nó : (Name) = MyFlexGrid, AllowUserRisizing = 3 - flexRisizeBoth,
6. Nhấn đúp chuột vào button vừa tạo để tạo thủ tục xử lý sự kiện click chuột trên button rồi viết đoạn code thực hiện việc hiển thị dữ liệu từ file Excel lên đối tượng MSFlexGrid như sau:
Option Explicit
'thủ tục xử lý sự kiện click chuột trên button
Private Sub Command1_Click()
'khai báo các biến cần dùng
Dim oXL As Excel.Application
Dim oWB As Excel.Workbooks
Dim oSheet As Excel.Worksheet
Dim rgn As Range
Dim i As Integer, j As Integer
'khởi động Excel và nhận đối tượng Application.
Set oXL = CreateObject("Excel.Application")
'xác định đối tượng quản lý file Excel.
Set oWB = oXL.Workbooks
'mở file "c:\userData.xls" chứa dữ liệu cần hiển thị
oWB.Add "c:\userData.xls"
'thiết lập biến miêu tả worksheet cần truy xuất
Set oSheet = oWB.Item(1).Worksheets("Sheet1")
'hiển thị nội dung trong vùng A1:J20 lên MSFlexGrid
Set rgn = oSheet.Range("A1:J20")
'thiết lập số hàng cho FlexGrid: 1 hàng tiêu đề + 20 hàng data
MyFlexGrid.Rows = 21
'thiết lập số cột cho FlexGrid: 1 cột tiêu đề + 10 cột data
MyFlexGrid.Cols = 11
'tạo tiêu đề các cột
MyFlexGrid.Row = 0
For i = 1 To 10
MyFlexGrid.Col = i
MyFlexGrid.Text = Chr(64 + i)
'chỉnh giữa nội dung tiêu đề
MyFlexGrid.CellAlignment = 4
Next i
'tạo tiêu đề các hàng
MyFlexGrid.Col = 0
For i = 1 To 20
MyFlexGrid.Row = i
MyFlexGrid.Text = i
'chỉnh giữa nội dung tiêu đề
MyFlexGrid.CellAlignment = 4
Next i
'lặp đọc từng cell dữ liệu và hiển thị
For i = 1 To 20
For j = 1 To 10
MyFlexGrid.Row = i
MyFlexGrid.Col = j
MyFlexGrid.Text = rgn.Cells(i, j)
Next j
Next i
'đóng đối tượng workbook (file xls)
oWB.Item(1).Close
'đóng ứng dụng Excel
oXL.Quit
End Sub
7. chọn menu Run.Start để chạy thử ứng dụng xem nó hoàn thành nhiệm vụ qui định không.