• Thứ Ba, 16/12/2003 16:39 (GMT+7)

    Tạo form nhập dữ liệu trong Excel

    Lượt xem 28374
    Đánh giá


    Bạn đã quá quen thuộc với giao diện truyền thống nhập dữ liệu trực tiếp vào ô bảng tính của Excel. Giao diện này đơn giản và dễ sử dụng. Tuy nhiên, khi làm việc với bảng tính lớn, người nhập liệu thường phải tập trung cao độ để tránh nhập nhầm sang ô khác. Việc nhập liệu sẽ trở nên dễ dàng hơn nếu có thể dùng biểu (form) để nhập nội dung của từng bản ghi, sau đó nhấn nút xác nhận và nội dung đã nhập sẽ được chuyển đúng vào vị trí mong muốn trong bảng tính.
    Bạn có thể tự tạo một form nhập liệu như thế với tiện ích Visual Basic Editor trong Excel. Bài viết sẽ này giới thiệu từng bước thao tác thực hiện.

    Bảng tính của tôi gồm có các cột sản phẩm, mã sản phẩm và tên hãng cung ứng như hình 1. Thay vì nhập dữ liệu trực tiếp vào bảng tính theo cách thức truyền thống, tôi sẽ tạo một form nhập liệu như hình 2. Khi nhấn nút lệnh Enter thì dữ liệu sẽ được chuyển vào bảng tính, nghĩa là đã nhập xong dữ liệu cho một bản ghi. Một bản ghi trong bảng tính chiếm trọn một dòng, khi nhập xong một bản ghi thì khung selector phải di chuyển xuống hàng kế tiếp. Nút lệnh Exit dùng để chấm dứt việc nhập liệu.

     

    Visual Basic Editor
    Vào Tools•Macro. Visual Basic Editor như hình 3. Cửa sổ làm việc của VBE sẽ xuất hiện như hình 4. Vào menu Insert và chọn User Form như hình 5 chúng ta sẽ được một  form như trong hình 6.

     

    Thiết kế form
    Bây giờ ta làm cho form này trở thành giao diện để nhập liệu vào bảng tính. Từ hộp công cụ (toolbox), nhấn chuột vào nút công cụ TextBox như hình 7, con trỏ chuột lúc đó có dạng dấu chữ thập (+), dùng nó để tạo hộp văn bản bên trong form như hình 8.
    Có một điều căn bản nên nhớ là khi mang một đối tượng điều khiển vào trong form, bạn phải đặt tên cho đối tượng đó. Đôi khi chúng ta còn phải gán thêm một vài thuộc tính khác nữa. Với đối tượng là hộp văn bản như trên, chỉ cần đặt tên cho nó là đủ. Bạn chú ý đến hộp thuộc tính của đối tượng như hình 9. Trong đó, thuộc tính Name chính là tên của đối tượng. Chưa xong, còn phải cung cấp cho form thêm hai hộp văn bản nữa. Bạn hãy gán tên cho TextBox2 và TextBox3 lần lượt là txtSanPham và txtHangCungUng.
    Chỉ còn đặt thêm hai nút lệnh (CommandButton) vào trong form là hoàn tất việc thiết kế. Hình 10 chỉ vị trí của đối tượng nút lệnh trong hộp đồ nghề. Thực hiện tương tự như đã làm với đối tượng hộp văn bản. Chú ý đến dòng ký tự trên nút lệnh, đây là thuộc tính Caption của đối tượng. Bạn phải gán chuỗi ký tự mới thay cho Caption hiện tại.
    Bạn có thể theo bảng sau đây để gán tên và Caption cho hai nút lệnh.
    Đến đây việc thiết kế form xem như hoàn tất, hình thức như trong hình 13. Bây giờ bước cuối cùng là viết chương trình cho form.

     

    Viết chương trình cho form
    Từ vùng làm việc của VBE, vào menu View•Code. Bạn cũng có thể nhấn phím chức năng F7. Gõ vào đoạn mã sau:

     

    Dim RecNum As Integer

    Private Sub ShowCurrentRecord()

    txtMaSanPham.Text = ActiveCell.Value

    Selection.Offset(0,1).Select

    txtSanPham.Text = ActiveCell.Value

    Selection.Offset(0,1).Select

    txtHangCungUng.Text = ActiveCell.Value

    Selection.Offset(0,-2).Select

    txtMaSanPham.SetFocus

    End Sub

     

    Private Sub cmdEnter_Click()

    ActiveCell.Value= txtMaSanPham.Text

    Selection.Offset(0,1).Select

    ActiveCell.Value = txtSanPham.Text

    Selection.Offset(0,1).Select

    ActiveCell.Value= txtHangCungUng.Text

      Selection.Offset(0, -2).Select

       RecNum = RecNum + 1

      Selection.Offset(1).Select

    ShowCurrentRecord

    End Sub

    Private Sub cmdExit_Click()

    End

    End Sub

    Private Sub UserForm_Activate()

    RecNum = 0

    Range(“a2”).Select

    While ActiveCell.Value <> “”

        RecNum = RecNum + 1

        Selection.Offset(1).Select

    Wend

    End Sub
    Tôi đợi bạn 20 phút để gõ đoạn mã trên. Đừng vội, coi chừng nhầm chuỗi rỗng với chuỗi có một khoảng trắng! Bây giờ bạn đã gõ xong, hãy chạy thử xem. Bạn vào menu Run•Run Sub/UserForm. Bạn có thể nhập nội dung của mỗi trường của một bản ghi vào hộp văn bản, rồi nhấn chuột vào nút Enter. Bạn sẽ thấy nội dung của bản ghi đi vào bảng tính và sẵn sàng cho bản ghi tiếp theo. Chà! Form làm việc tốt rồi. Nhưng vẫn có thể làm cho nó tốt hơn nữa. Với form hiện tại, bạn chỉ có thể nhập dữ liệu mà thôi. Tôi sẽ mách bạn sử dụng đối tượng SpinButton của VBE để làm cho form của bạn có khả năng duyệt nội dung của những bản ghi đang hiện diện trong bảng tính.  Đợi chút, bạn đang chạy một macro, vậy hãy chấm dứt macro này trước khi làm bất cứ chuyện gì. Nhấn chuột vào nút lệnh Exit.

     

    Đối tượng SpinButton
    Bây giờ bạn đã trở về VBE. hình 14 chỉ vị trí của đối tượng SpinButton trong hộp công cụ. Bạn hãy đưa đối tượng này vào trong form như trong hình 15. Bạn cũng đừng quên đặt tên cho đối tượng này. Tên gì đây? Tạm gọi là spnUpDown.
    Bây giờ bạn sẽ bổ sung chương trình cho đối tượng Spin. Bạn còn nhớ cách mở cửa sổ Code chứ? Dưới đây là đoạn chương trình mà bạn sẽ gõ vào.

     

    Private Sub spnUpDown_SpinUp()

    If Selection.Row <> 2 Then

        Selection.Offset(-1).Select

        ShowCurrentRecord

    txtMaSanPham.SetFocus

    End If

    End Sub

    Private Sub spnUpDown_SpinDown()

    If Selection.Row <= RecNum + 1 Then

        Selection.Offset(1).Select

        ShowCurrentRecord

    End If

    txtMaSanPham.SetFocus

    End Sub
    Cho chạy macro này, nhấn chuột vào nút SpinButton để trắc nghiệm xem nó có làm việc đúng như ý muốn hay không.
    Vậy là vấn đề đã được giải quyết. Có thể bạn muốn yêu cầu nhiều hơn với form trên, như nó phải có khả năng xoá cũng như chèn thêm một bản ghi vào vị trí hiện hành của selector trên bảng tính. Trong trường hợp này, xin bạn đừng ngần ngại liên lạc với tôi qua địa chỉ: vvhoc@yahoo.com.au.
    Vũ Văn Học

    ID: A0302_65
    Ý kiến của bạn? Ý kiến của bạn?
    Tin ngày :

Thuật ngữ