• Thứ Năm, 08/12/2005 13:46 (GMT+7)

    Câu hỏi :
    Tôi có khoảng 1000 file Excel. Tôi muốn viết chương trình bằng VB6 với mục đích như sau:
    - Thêm module mà không cần mở file Excel. Module này có một số hàm và thủ tục cho trước.
    - Xoá module đó (cũng không cần phải mở file).
    Xin hướng dẫn.


    Trả lời :

    Bạn có thể dùng các dịch vụ của đối tượng "Excel Automation Server" để lập trình truy xuất từng file Excel, duyệt nội dung của nó rồi thêm/bớt/hiệu chỉnh các thành phần trong file Excel tương ứng. Đoạn code mẫu sau đây cho bạn mở 1 file Excel, thêm vào 1 module mới chứa các hàm, thủ tục nào đó:

    'khai báo đối tượng miêu tả Workbook của file Excel

    Dim wbk As Excel.Workbook
    'khởi động workbook từ file
    Dim filename As String
    filename = "C:\My Documents\Revenue.xls"
    Set wbk = GetObject(filename)

    'thêm 1 module mới vào workbook
    Dim xlmodule As Object VBComponent
    Set xlmodule = wbk.VBProject.VBComponents.Add(1) vbext_ct_StdModule

    viết code cho module
    Dim strCode As String

    'đọc file source code có sẵn vào biến strCode
    'hay gán trực tiếp từ chương trình bằng lệnh gán
    strCode = "...."
    'thêm code từ biến String vào module
    xlmodule.CodeModule.AddFromString strCode

    Còn đoạn code mẫu sau đây cho bạn mở 1 file Excel, xóa 1 module với tên nhận dạng biết trước:

    'khai báo đối tượng miêu tả Workbook của file Excel

    Dim wbk As Excel.Workbook
    'khởi động workbook từ file

    Dim filename As String
    filename = "C:\My Documents\Revenue.xls"
    Set wbk = GetObject(filename)
    'duyệt từng components
    For Each n In wkb.VBProject.VBComponents
    'nếu module n có tên qui định thì xóa
     if (n.Type = vbext_ct_StdModule) and n.name = "Module1" then
      Doc.VBProject.VBComponents.Remove n
     end if
    Next

     

     

    Chuyên mục: Mạng - truyền thông