Как поместить текст в буфер обмена, чтобы он вставлялся в виде таблицы в Word?

StackOverflow https://stackoverflow.com/questions/297220

Вопрос

Как с помощью VBA в MS Office добавить текст в буфер обмена Windows, чтобы он вставлялся в Word в виде таблицы?

Это было полезно?

Решение

Буфер обмена Windows поддерживает несколько форматов.Когда вы хотите поместить что-либо в буфер обмена, вы делаете один или несколько вызовов метода RegisterClipboardFormat(), сообщая ему форматы объектов, которые вы будете помещать в буфер обмена, а затем вызываете метод SetClipboardData(), который фактически помещает данные в буфер обмена. .

Если вы хотите иметь возможность вставить таблицу в Word, то HTML — самый простой формат для работы.Просто скопируйте таблицу HTML в буфер обмена, и она будет правильно вставлена ​​в Word, при условии, что вы сначала зарегистрируете данные буфера обмена как объект HTML.

Я бы дал вам немного кода, но проще всего просто сослаться на пример в MSDN:

Как добавить HTML-код в буфер обмена с помощью Visual Basic

На этой странице даже показан пример копирования таблицы HTML в буфер обмена.

Другие советы

Ответ Клюге правильный, но в этой другой статье на MSDN есть лучший код, который легче использовать повторно: http://blogs.msdn.com/jmstall/archive/2007/01/21/html-clipboard.aspx

Вы пытались отформатировать его в виде таблицы HTML?

Прошло много времени с тех пор, как я занимался программированием для Windows, но, похоже, я вспоминаю, что вы регистрировали формат объекта. Фактически вы можете зарегистрировать несколько объектов разных форматов, и приложение для вставки может выбирать между ними (например, с помощью параметра Word Paste Special ).

Я бы попытался создать объект таблицы Word, заполнить его ячейки данными и скопировать их в буфер обмена.

Буфер обмена великолепен ... Но кое-что кажется немного неаккуратным в использовании его для хранения вывода из вашей программы для вставки в Word. Что вы пытаетесь сделать, что вы, вероятно, должны делать по-другому?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top