Sử dụng VBA trong MS Office, làm cách nào để thêm văn bản vào khay nhớ tạm của Windows để nó sẽ dán vào Word dưới dạng bảng?Làm thế nào để đặt văn bản trong clipboard để nó dán như một bảng trong Word?
Trả lời
Khay nhớ tạm của Windows hỗ trợ nhiều định dạng. Khi bạn muốn đặt mọi thứ vào clipboard, bạn thực hiện một hoặc nhiều cuộc gọi đến RegisterClipboardFormat() cho biết định dạng của các đối tượng bạn sẽ đặt vào clipboard, tiếp theo là các cuộc gọi tới SetClipboardData() thực sự đặt dữ liệu vào clipboard .
Nếu bạn muốn có thể dán Bảng thành Word, thì HTML là định dạng dễ nhất để làm việc. Chỉ cần sao chép một bảng HTML vào clipboard, và nó sẽ dán chính xác vào Word, với điều kiện trước tiên bạn đăng ký dữ liệu clipboard dưới dạng một đối tượng HTML.
tôi muốn cung cấp cho bạn một số mã, nhưng nó dễ dàng nhất để chỉ cần tham khảo một ví dụ trên MSDN:
How to add HTML code to the clipboard using Visual Basic
Trang này thậm chí còn cho thấy một ví dụ về việc sao chép một bảng HTML vào clipboard.
Bạn đã thử định dạng nó dưới dạng bảng HTML chưa?
Không hoạt động. Bạn cần phải nói cho clipboard là một bảng HTML khi bạn sao chép nó để làm việc. –
Đã lâu rồi kể từ khi tôi thực hiện bất kỳ chương trình Windows nào, nhưng tôi có vẻ nhớ lại rằng bạn đăng ký định dạng của đối tượng. Trong thực tế, bạn có thể đăng ký nhiều đối tượng có định dạng khác nhau và ứng dụng dán có thể chọn giữa chúng (chẳng hạn như tùy chọn Paste Special
của Word).
Tôi sẽ cố gắng tạo đối tượng bảng Word, điền vào ô đó bằng dữ liệu của bạn và sau đó sao chép dữ liệu đó vào khay nhớ tạm.
Kluge câu trả lời là đúng nhưng bài viết khác nhau này trên MSDN có mã tốt hơn đó là dễ dàng hơn để tái sử dụng: http://blogs.msdn.com/jmstall/archive/2007/01/21/html-clipboard.aspx
Clipboard là rất tốt ... Nhưng một cái gì đó có vẻ hơi sơ sài về việc sử dụng nó để giữ được kết quả từ chương trình của bạn để dán vào Word. Điều gì mà bạn đang cố gắng làm điều đó có lẽ bạn nên làm theo cách khác?
- 1. Làm cách nào để đặt một số văn bản được định dạng vào Clipboard?
- 2. javascript cắt/sao chép/dán vào clipboard: Google đã giải quyết nó như thế nào?
- 3. Làm thế nào để sao chép nội dung của một hộp văn bản nhiều dòng vào clipboard trong C#?
- 4. Làm thế nào để đặt nhiều định dạng trên clipboard?
- 5. Làm thế nào để chuyển đến một Bookmark trong Word-VBA và chèn văn bản?
- 6. Dán dưới dạng văn bản thuần túy Có thể chỉnh sửa div & textarea (word/excel ...)
- 7. Làm thế nào để bọc văn bản trong bảng LaTeX?
- 8. Nhận văn bản trên bảng MS Word
- 9. Làm một JEditorPane với html đưa định dạng đúng văn bản trong clipboard
- 10. Làm thế nào để sao chép cả hai - HTML và văn bản vào clipboard?
- 11. Làm sạch văn bản đã dán Microsoft Word bằng cách sử dụng JavaScript
- 12. Dán hình ảnh vào văn bản đa dạng (như gmail)
- 13. Làm thế nào để clipboard hoạt động trong Windows?
- 14. "<" trong một hộp văn bản trong ASP.NET -> làm thế nào để cho phép nó?
- 15. Làm thế nào để bọc văn bản trong một JTextArea
- 16. Làm thế nào để hiển thị văn bản trong một dòng trong văn bản wpf
- 17. Làm thế nào để đặt và văn bản trung tâm trong một hình chữ nhật SVG
- 18. Làm thế nào để đặt một biểu tượng bên trong hộp văn bản trong jquery mobile
- 19. jquery như thế nào để có được nội dung dán
- 20. Cách sao chép văn bản RTF vào clipboard để sử dụng trong excel
- 21. Làm cách nào để tạo một đa dòng TextGeometry? Làm thế nào để đặt nó bên trong một hình vuông để nó kết thúc tốt đẹp như văn bản html không bên trong một div?
- 22. Làm thế nào để chặn (phát hiện) lệnh Dán vào TMemo?
- 23. Làm thế nào để trích xuất văn bản trong một chuỗi văn bản
- 24. Làm thế nào để đặt một hộp văn bản cho nhập mật khẩu trong winforms?
- 25. Làm thế nào để thiết lập văn bản ban đầu trong một văn bản TinyMCE?
- 26. Làm thế nào để vượt qua một tập tin văn bản như một đối số?
- 27. Làm cách nào để kích hoạt dán trong hộp văn bản bằng Ctrl + v
- 28. Plugin Delphi để dán hằng số văn bản trong mã nguồn?
- 29. Làm thế nào để bạn chọn văn bản trong vim?
- 30. Làm cách nào để sao chép một số văn bản từ trong conkeror vào clipboard của tôi?
Tôi đã làm việc này, nhưng thấy rằng tôi không thể dán dữ liệu ô bảng vào bảng Word hiện có, giống như cách bạn có thể sao chép và dán giữa các bảng Word. Thay vào đó, dữ liệu bảng clipboard hiển thị dưới dạng một bảng lồng nhau trong một ô bảng Word duy nhất. Việc làm việc đó có thể đòi hỏi một sự hiểu biết chi tiết về những gì Word mong đợi tìm thấy trên clipboard. –
Để dán các ô bảng vào các bảng Word theo cách Word, tôi đoán rằng tôi cần phải đặt định dạng RTF vào clipboard. –