Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 03.02.2020
Сообщений: 9

Заполнить таблицу Word за один заход

12.11.2020, 02:14. Показов 4230. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!

Как ни гуглил - подходящего решения к сожалению не нашлось, так что обращаюсь за советом.

Задачка следующая: необходимо заполнить таблицу в Word, в которой фиксировано 10 столбцов и N строк. Количество строк определяется заранее исходя из параметров исходного файла с данными. На данный момент работает следующим образом: добавляем строку - заполняем - добавляем строку - заполняем, повторяем N раз. И такое решение при больших объемах (больше 1000 строк например) вполне ожидаемо работает крайне медленно.

Отрисовать таблицу сразу с 1000 строк - не проблема. Но можно ли каким-то образом так же сразу заполнить её данными, чтобы не делать это построчно? Если да, то каким образом?

Word необходимо использовать т.к. есть ещё нужный текст вокруг таблицы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.11.2020, 02:14
Ответы с готовыми решениями:

Заполнить таблицу в один клик
Здравствуйте, подскажите пожалуйста, как в Access 2007 сделать так, чтобы при нажатии на кнопку первая ячейка, первого строки (А1) была...

Создать таблицу в Word и заполнить её данными из массива
Добрый день, товарищи! Возникла задача - не могу решить.. Прошу помощи.. Есть массив arr(6;i) - 7 столбцов, и минимум 1 строка,...

Помогите с юартом, заход в прерывание только один раз ((((
Помогите с юартом, заход в прерывание только один раз (((( #include "AT91SAM7S64.h" #define EXT_OC 18432000 // External...

24
0 / 0 / 0
Регистрация: 03.02.2020
Сообщений: 9
16.11.2020, 13:21  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Catstail Посмотреть сообщение
- вы при заполнении таблицы автообновление отключали?
ScreenUpdating = False стоит. Что-то ещё?

Цитата Сообщение от Narimanych Посмотреть сообщение
У нас традиция - заполнять таблицы в ворде , а тексты писать в экселе.
Как-то так получилось к сожалению :-(

Цитата Сообщение от Hugo121 Посмотреть сообщение
Действительно, чегоб копипаст не применить?
А он переживёт такой объём?

Цитата Сообщение от Alex77755 Посмотреть сообщение
Так создать сначала таблицу программно и в неё вставлять
Можно ли в какой-нибудь объект положить или только через блокнот?
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
16.11.2020, 14:38
Можно ли в какой-нибудь объект положить
в буфер обмена
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
16.11.2020, 15:51
Так выше ведь говорилось - формировать строковую переменную и в буфер её.
Но можно пробовать и без буфера...
А с Вордом не работаю, я пас, не буду и начинать
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
16.11.2020, 20:04
2000 строк 10 колонок = 15 с.
в коде много лишнего. кому надо - подчистит
Просто сам принцип

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Sub Макрос3()
 
    Dim tbl$, t$, z As Long
    Start = Time()
    For i% = 1 To 2000 ' строк
        For j% = 1 To 10 ' солонок
            z = CDbl(i + 1000 * j)
            t = CStr(z)
            If j = 1 Then
                tbl = IIf(Len(tbl) = 0, t, tbl & t)
            Else
                tbl = IIf(Len(tbl) = 0, t, tbl & vbTab & t)
            End If
        Next j%
        tbl = tbl & vbNewLine
        
    Next i%
 
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .Clear
        .SetText tbl
        .PutInClipboard
    End With
'
'
    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2000, NumColumns:= _
        10, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
    With Selection.Tables(1)
'        .Select
        If .Style <> "Сетка таблицы" Then
            .Style = "Сетка таблицы"
        End If
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = False
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = False
        .ApplyStyleRowBands = True
        .ApplyStyleColumnBands = False
        .Range.Paste
    Finish = Time()
    MsgBox Format(Finish - Start, "nn:ss")
    End With
 
End Sub
Миниатюры
Заполнить таблицу Word за один заход  
0
0 / 0 / 0
Регистрация: 03.02.2020
Сообщений: 9
17.11.2020, 02:20  [ТС]
Большое спасибо, принцип понятен, адаптирую и отпишусь.

В моем случае это правда не макрос, а отдельная программа, почему-то переехало в другой раздел. Самое главное нашлось, это замечательно:

Цитата Сообщение от Alex77755 Посмотреть сообщение
Надо собрать всё в одну строковую переменную, при этом элементы одной строки разделяются vbTab, а сами строки - vbNewLine, после чего поместить полученную строку в буфер обмена методом Clipboard.SetText (предварительно рекомендуется очистить буфер методом Clipboard.Clear).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.11.2020, 02:20

Работа с COM портом запись и чтение в один заход-как сделать?
Столкнулся с тем что оборудование которое прицеплено к компорту не отвечает если сразу же после отправки пакета затребовать у него...

Напишите программу для нахождения максимального числа ягод, которое может собрать за один заход собирающий модуль
Считаю, что крайне нагло просить сделать решение этой задаче, но я в отчаянии... Итак, вот задача. Я её сократил, но смысл не...

Алгоритм, вычисляющий восход-заход солнца и восход-заход луны.
Найден алгоритм, написанный на BASIC и вычисляющий восход-заход солнца и восход-заход луны. Есть ли смысл перенести это детище на АСМ? ...

Поиск строк в шаблоне в word и вывод в таблицу в другой файл word
Здравствуйте, требуется помощь! Имеется шаблон документа в word в котором есть три строки, которые нужно кинуть в таблицу в другой файл...

Добавление срок в таблицу Word при заполнении документа Word из данных Excel
Всем привет! Я новичок в этом деле и нужна помощь. Есть таблица Excel с данными на основании которого заполняется документ Word по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru