Liên kết dữ liệu Excel vào danh sách người dùng Word.
Chào, trước tiên tôi xin lưu ý, tôi đang sử dụng Office 2003, nhưng tôi có thể nâng cấp lên 2010 nếu điều đó giúp giải quyết vấn đề dễ dàng hơn.
Tôi đang cố gắng liên kết một bảng tính Excel với một hộp danh sách trong biểu mẫu người dùng Word. Tôi còn rất mới với VBA nên cần một chút trợ giúp, nhưng đây là những gì tôi muốn làm:
- Tôi có một biểu mẫu trong Word với nhiều ô nhập liệu.
- Khi ai đó mở biểu mẫu, tôi muốn một biểu mẫu người dùng có hộp danh sách xuất hiện.
- Tôi muốn hiển thị danh sách tên từ hộp danh sách thả xuống (các tên này nằm ở cột 1 trong bảng tính Excel).
- Khi người dùng chọn một tên và nhấp vào nút "OK", tôi muốn các ô văn bản trên biểu mẫu tự động điền thông tin từ bảng tính tương ứng với tên đã chọn.
Ví dụ, nếu chọn "Dave", ô văn bản 1 trên biểu mẫu sẽ điền tên, ô 2 điền ngày bắt đầu, ô 3 điền số ngày nghỉ phép còn lại, v.v., chỉ dành riêng cho Dave:
| Tên | Ngày bắt đầu | Số ngày nghỉ phép còn lại trong năm | Số ngày nghỉ phép hàng năm |
| Dave | 09/01/10 | 12 | 32 |
| John | 08/02/09 | 3 | 34 |
| Bobby C | 07/03/08 | 9 | 32 |
- Tôi chỉ muốn hiển thị tên trong hộp danh sách, phần còn lại được liên kết nhưng không hiển thị trong hộp danh sách của biểu mẫu người dùng.
- Cuối cùng, nếu ai đó cập nhật bảng tính Excel thì tôi muốn thông tin được điền vào các ô văn bản từ biểu mẫu người dùng cũng được cập nhật theo.
Tôi đã hoàn thành biểu mẫu, có bảng tính Excel, tôi biết cách tạo biểu mẫu người dùng. Tôi không chắc làm thế nào để nó hiện lên dưới dạng cửa sổ bật lên khi tài liệu được mở và phần còn lại vẫn là một bí ẩn đối với tôi. Rất mong nhận được sự giúp đỡ.
Ollie
Trả lời:
Thủ tục UserForm_Initialize cần phải nằm trong mã của UserForm.
Ngoài ra, hãy sử dụng
Sub AutoNew()
Khai báo biến môi trường `myForm as UserForm1` (giả định đây là tên của UserForm của bạn).
Dim xlApp As Excel.Application
Dim xlbook As Excel.Workbook
Khai báo Listarray là Variant
Dim bStartApp As Boolean
Khi xảy ra lỗi, tiếp tục.
Đặt myForm = NewUserForm1
Set xlApp = GetObject(, "Excel.Application")
Nếu Err thì
bStartApp = True
Set xlApp = New Excel.Application
Kết thúc nếu
Khi xảy ra lỗi, chuyển về 0.
Với xlApp
Set xlbook = .Workbooks.Open("G:\office\Consultant database.xls")
Listarray = xlbook.Names("mySSRange").RefersToRange.Value
xlbook.Close SaveChanges:=False
Đặt xlbook = Không có gì
Kết thúc bằng
Nếu bStartApp thì xlApp.Quit
Đặt xlApp = Nothing
Với myForm.ListBox1
.ColumnCount = UBound(Listarray, 2)
.Thông thoáng
.List() = Listarray
Kết thúc bằng
myForm.Show
Unload myForm
Đặt myForm = Nothing
Comments
Post a Comment