Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VB6 и таблицы Word, Быстрая передача данных в таблицу Word? 
:(
    Опции темы
SNN
Дата 21.10.2005, 04:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.10.2005

Репутация: нет
Всего: нет



Заполнение таблицы Word "поштучно" в каждую ячейку данными из VB происходит очень медленно. Существует-ли способ это дело ускорить, например заполнить за один проход сразу всю таблицу, как это происходит при copy\paste таблицы из Excel (размер таблицы фиксированный), или еще как-нить??? Пробывал составить одну длинную строку (такую, которая лежит в буфере обмена после копирования из Excel-a), но Word ее все-равно вставляет в одну ячейку (со всеми Chr(10) и Chr(13)) smile(
PM MAIL   Вверх
likhobory
Дата 21.10.2005, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



вставляй текст и конвертируй его в таблицу, указывая соотв. сепаратор
Код
myRange.ConvertToTable Separator:=wdSeparateByTabs

если в EXCEL-данные буфере, то ИМХО наиболее удобен вариант с PasteExcelTable
Код

Range("MyRange").PasteExcelTable _
        LinkedToExcel:=False, _
        WordFormatting:=True, _
        RTF:=True





--------------------
PM MAIL   Вверх
SNN
Дата 23.10.2005, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.10.2005

Репутация: нет
Всего: нет



Хорошо, а в таком случае:
Есть двумерный массив, и таблица в Ворде (уже отформатированная и частично заполненная), куда этот массив нада вставить. Как закинуть данные в эту таблицу как один блок, а не поячеечно?

PM MAIL   Вверх
likhobory
Дата 23.10.2005, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



просто продолжай существующую таблицу, замени "MyRange" на последнее значение диапазона таблицы
Код

Dim TableTail As Long
'''''''''''''''''''''''''
TableTail = ActiveDocument.Tables("MyTable").Range.End
ActiveDocument.Range(TableTail, TableTail).PasteExcelTable _
 LinkedToExcel:=False, WordFormatting:=True, RTF:=True



--------------------
PM MAIL   Вверх
SNN
Дата 24.10.2005, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.10.2005

Репутация: нет
Всего: нет



спасибо за внимание, likhobory.
А как это сделать без буфера обмена, когда данные из массива VB MyArray(100,5) выводятся напрямую в таблицу Ворда (и все, Excel я не использую тут)?
PM MAIL   Вверх
likhobory
Дата 24.10.2005, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



Цитата(SNN @ 24.10.2005, 03:26)
данные из массива выводятся напрямую в таблицу Ворда

мне такой способ неизвестен, но можешь скопировать данные массива в переменную (CopyMemory), поместить данные в док. и конвертировать их в таблицу (ConvertToTable)


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0929 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.