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

      Popular posts from this blog

      Xử lý hàng loạt các tệp Excel được bảo vệ bằng mật khẩu

      Thu hẹp và mở rộng cột trong Excel

      Excel: Tìm và trả về "số cuối cùng" trong một cột, trong đó cột chứa: cả ô trống và số dương tùy ý (lớn hơn 0).