powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Работа с таблицами с помощью Visual Basic в Word
11 сообщений из 11, страница 1 из 1
Работа с таблицами с помощью Visual Basic в Word
    #36997069
Ankh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Генератор отчёта генерирует мне таблицу. Таблица выходит глючная, иногда у неё внизу страницы у ячеет нет нижней границы.

Таблица может простираться на много много страниц.

Как мне, с помощью VBA на каждой странице найти верхнюю и нижнюю строку и у верхней проставить верхнюю границу, а у нижней - нижнюю.
...
Рейтинг: 0 / 0
Работа с таблицами с помощью Visual Basic в Word
    #36997811
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnkhГенератор отчёта генерирует мне таблицу. Таблица выходит глючная, иногда у неё внизу страницы у ячеет нет нижней границы.

Таблица может простираться на много много страниц.

Как мне, с помощью VBA на каждой странице найти верхнюю и нижнюю строку и у верхней проставить верхнюю границу, а у нижней - нижнюю.

ворд устойчиво берет таблицу около 25-30 листов, при большом количестве столбцов -меньше

верхней и нижней линии нет, тат как не установлена опция не разрывать ячейку

для больших отчетов делала HTM для открытия в WORD в режиме <pre>....</pre> с форматированием строки пробелами, макросом вставляя в верхний коллонтитул строку типа
1-----2----------3-----------4--------------5----------------6
...
Рейтинг: 0 / 0
Работа с таблицами с помощью Visual Basic в Word
    #36998487
Ankh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАAnkhГенератор отчёта генерирует мне таблицу. Таблица выходит глючная, иногда у неё внизу страницы у ячеет нет нижней границы.

Таблица может простираться на много много страниц.

Как мне, с помощью VBA на каждой странице найти верхнюю и нижнюю строку и у верхней проставить верхнюю границу, а у нижней - нижнюю.

ворд устойчиво берет таблицу около 25-30 листов, при большом количестве столбцов -меньше

верхней и нижней линии нет, тат как не установлена опция не разрывать ячейку

для больших отчетов делала HTM для открытия в WORD в режиме <pre>....</pre> с форматированием строки пробелами, макросом вставляя в верхний коллонтитул строку типа
1-----2----------3-----------4--------------5----------------6

Дело в том, что не я делаю отчёт, а мне его выплевывает Report Sharp Shooter.

Он уже мне делает разрывы.
...
Рейтинг: 0 / 0
Работа с таблицами с помощью Visual Basic в Word
    #36998492
Ankh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я переписывался с компанией, которая делает генератор отчетов.

Мой вопрос и моя проблема в прикрепленном файле. Средствами генератора отчетов я не смог решить эту проблему. Поэтому пробую средствами Office и VBA.
...
Рейтинг: 0 / 0
Работа с таблицами с помощью Visual Basic в Word
    #36998493
Ankh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Форум не позволяет прикреплять сообщения размером более 150 кб потому вторая часть
...
Рейтинг: 0 / 0
Работа с таблицами с помощью Visual Basic в Word
    #36998551
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ankh,

я посмотрела ваш документ и уверена, что причина

верхней и нижней линии нет, тат как не установлена опция не разрывать ячейку

-установить ее вы не сможете
-в одном пункте слишком много подпунктов( в п13 -7 подпунктов)

хотя попробуйте в ворде
-выделить таблицу
-зайти в свойства таблицы
-строка
-не разрешать перенос строк на следующую страницу

вдруг и получится
...
Рейтинг: 0 / 0
Работа с таблицами с помощью Visual Basic в Word
    #36998571
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ankh,

вторая причина
-слишком маленькие поля страницы( у каждого принтета есть минимально возможные поля)
-для проверки : в параметрах установит флажок -показывать границы текста-
-если таблица выходит за линии текста -то могут быть проблемы при печати, ворд ругается на эту ситуацию, но не всегда
-у меня была ситуация, когда я не могла сделать нижнее поле менее 1 см
...
Рейтинг: 0 / 0
Работа с таблицами с помощью Visual Basic в Word
    #37000712
Ankh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,

Дело в том что в отчёте это две разные ячейки с прозрачной границей между ними.

Т.е. в конце страницы - первая ячейка, а в начале следующей - вторая. Так что это абсолютно нормально ему их переносить, то есть не связано со свойством "не разрешать перенос строк на следующую страницу".

Мне интересно, можно ли, например макросами, найти последнюю строку таблицы на странице, выделить её ячейки и проставить нижнюю границу? И так для каждой страницы.
...
Рейтинг: 0 / 0
Работа с таблицами с помощью Visual Basic в Word
    #37001127
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ankh,

разобралась с внутренними границами таблицы

-никогда не использовала(или границы или нет границы)
-все горизонтальные -не проблема
-ваша идея -макросом или иным образом первую и последнюю горизонтальную на странице

пока идей нет
...
Рейтинг: 0 / 0
Работа с таблицами с помощью Visual Basic в Word
    #37001241
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ankh,

модулем получилось так
при необходимости можно привязать на autoopen\autoexec, хотя сама никогда не использовала autoopen\autoexec

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub m101208_0912()
Dim rs As Row, j1, j2, j3, j3a
Dim tbl As Table
Set tbl = Word.ActiveDocument.Tables( 1 )
j1 =  0 
j2 = tbl.Rows( 1 ).Borders(wdBorderTop).LineStyle
j3a = - 1 
For Each rs In tbl.Rows
j1 = j1 +  1 
rs.Cells( 1 ).Select
j3 = Selection.Information(wdVerticalPositionRelativeToPage)
Debug.Print j1, j3, j3a, Selection.Range.Text;
If j3 < j3a Then
tbl.Rows(j1 -  1 ).Borders(wdBorderBottom).LineStyle = j2
tbl.Rows(j1).Borders(wdBorderTop).LineStyle = j2
End If
j3a = j3
Next rs
End Sub

...
Рейтинг: 0 / 0
Работа с таблицами с помощью Visual Basic в Word
    #37003134
Ankh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,

Спасибо, я попробую.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Работа с таблицами с помощью Visual Basic в Word
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]