Excel/Word 2003 - Sao chép giá trị ô Excel vào dấu trang/trường trong biểu mẫu Word bằng VBA
Chào mọi người, tôi hy vọng vẫn nhận được những câu trả lời hữu ích như trên MS Groups! Tôi đã tìm kiếm chủ đề này trên diễn đàn nhưng không thấy chủ đề nào tương tự.
Tôi có một bảng tính ngân sách Excel 2003 và một biểu mẫu Word 2003. Tôi muốn người dùng có thể nhập thông tin ngân sách của họ vào bảng tính Excel, nhấn một nút để chạy macro mở một biểu mẫu Word 2003 cụ thể ("Purchasing Form.dot"), và sau đó sao chép các giá trị ô vào các trường biểu mẫu đã được đánh dấu thích hợp trong biểu mẫu Word. Tôi đã làm cho một nửa macro bên dưới hoạt động, nhưng nó cứ báo "cần đối tượng" khi tôi cố gắng sao chép nó vào dấu trang biểu mẫu Word. Như bạn có thể thấy bên dưới, tôi đang cố gắng sao chép ô D6 vào dấu trang "NHÀ CUNG CẤP". Nếu tôi có thể nhận được sự trợ giúp về một cách hiệu quả để sao chép giá trị ô Excel vào dấu trang trường biểu mẫu Word, thì tôi sẽ có thể hoàn thành dự án này ngay lập tức, vì vậy tôi rất biết ơn bất kỳ sự giúp đỡ nào và cơ hội được học hỏi. :-) - mokshadavid
Sub Copy_Excel_Cell_to_Word_Form()
'Mở tài liệu Word'
Đặt wdApp = CreateObject("Word.Application")
wdApp.documents.Open "C:\Projects\Purchasing Form.dot"
wdApp.Visible = True
Bảng tính (1).Phạm vi ("D6"). Sao chép
ActiveDocument.Bookmarks("VENDOR").Range.PasteSpecial
End Sub
Trả lời:
Nếu bạn muốn điều khiển một ứng dụng khác, thì bạn luôn phải tham chiếu đến đối tượng đã được tạo.
ActiveDocument không phải là một đối tượng Excel, đó là lý do gây ra lỗi.
Andreas.
Sub Copy_Excel_Cell_to_Word_Form()
Dim wdApp As Object 'Word.Application
Dim wdDoc As Object 'Word.Document
'Mở một phiên bản Microsoft Word mới'
Đặt wdApp = CreateObject("Word.Application")
'Hiển thị ứng dụng'
wdApp.Visible = True
'Mở tài liệu Word'
Set wdDoc = wdApp.documents.Open("C:\Projects\Purchasing Form.dot")
Giá trị sao chép
Bảng tính (1).Phạm vi ("D6"). Sao chép
'Dán vào tài liệu Word'
wdDoc.Bookmarks("VENDOR").Range.PasteSpecial
End Sub
Trả lời:
Thử:
Khai báo wdApp là Object
Dim wdDoc as Object
'Mở tài liệu Word'
Đặt wdApp = CreateObject("Word.Application")
Set wdDoc = wdApp.documents.New("C:\Projects\Purchasing Form.dot")
wdDoc.Bookmarks("Vendor").Range.Text = Worksheets(1).Range("D6").Value
wdApp.Visible = True
Xem bài viết "Điều khiển Word từ Excel" tại:
http://www.word.mvps.org/FAQs/InterDev/ControlWordFromXL.htm
và bài viết "Đóng sách sớm so với đóng sách muộn" tại:
http://www.word.mvps.org/FAQs/InterDev/EarlyvsLateBinding.htm
Hi vọng điều này sẽ hữu ích.
Doug Robbins - Chuyên gia xuất sắc về ngôn từ,
dkr[atsymbol]mvps[dot]org
Được đăng tải qua Community Bridge
"mokshadavid" đã viết trong tin nhắn news:*** Địa chỉ email đã bị xóa vì lý do bảo mật ***...
Chào mọi người, tôi hy vọng vẫn nhận được những câu trả lời hữu ích như trên MS Groups! Tôi đã tìm kiếm chủ đề này trên diễn đàn nhưng không thấy chủ đề nào tương tự.Tôi có một bảng tính ngân sách Excel 2003 và một biểu mẫu Word 2003. Tôi muốn người dùng có thể nhập thông tin ngân sách của họ vào bảng tính Excel, nhấn một nút để chạy macro mở một biểu mẫu Word 2003 cụ thể ("Purchasing Form.dot"), và sau đó sao chép các giá trị ô vào các trường biểu mẫu đã được đánh dấu thích hợp trong biểu mẫu Word. Tôi đã làm cho một nửa macro bên dưới hoạt động, nhưng nó cứ báo "cần đối tượng" khi tôi cố gắng sao chép nó vào dấu trang biểu mẫu Word. Như bạn có thể thấy bên dưới, tôi đang cố gắng sao chép ô D6 vào dấu trang "NHÀ CUNG CẤP". Nếu tôi có thể nhận được sự trợ giúp về một cách hiệu quả để sao chép giá trị ô Excel vào dấu trang trường biểu mẫu Word, thì tôi sẽ có thể hoàn thành dự án này ngay lập tức, vì vậy tôi rất biết ơn bất kỳ sự giúp đỡ nào và cơ hội được học hỏi. :-) - mokshadavid
Sub Copy_Excel_Cell_to_Word_Form()
'Mở tài liệu Word'
Đặt wdApp = CreateObject("Word.Application")
wdApp.documents.Open "C:\Projects\Purchasing Form.dot"
wdApp.Visible = TrueBảng tính (1).Phạm vi ("D6"). Sao chép
ActiveDocument.Bookmarks("VENDOR").Range.PasteSpecial
End Sub
Doug Robbins - Chuyên gia xuất sắc về Word (dkr[atsymbol]mvps[dot]org)
Comments
Post a Comment