Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2011, 23:46   #1
bdfy
Форумчанин
 
Регистрация: 12.11.2009
Сообщений: 258
По умолчанию VBA Задать поля всех ячеек в таблице Word

вот такой вот код. вставляет в документ oDoc из буфера обмена таблицу
Код:
    Set oRng = oDoc.Paragraphs.last.Range
    'Debug.Print oRng.Fields(1).Code.text
    oRng.ParagraphFormat.KeepWithNext = True
    
    oRng.InsertCaption label:="Таблица", TitleAutoText:="", _
                Title:="-" & text, Position:=0, ExcludeLabel:=0
    'oRng.InsertParagraphafter
    oRng.Collapse 0 'end
    
        oRng.PasteExcelTable _
            LinkedToExcel:=False, _
            WordFormatting:=False, _
            RTF:=True
'       oRng.ClearOutline
        oRng.Tables(1).AutoFitBehavior (wdAutoFitWindow)
        If header > 0 Then
            For i = 1 To header
            oRng.Tables(1).Rows(i).HeadingFormat = True
            Next
        End If
        oRng.Tables(1).select
        
        Debug.Print oDoc.Application.Selection.Cells.Count

        For i = 1 To oDoc.Application.Selection.Cells.Count
              With oDoc.Application.Selection.Cells(i)
            '     Debug.Print x.LeftPadding
                .LeftPadding = 0
                .RightPadding = 0
                .WordWrap = True
                .FitText = False
             End With
        Next
а вот с форматирование ее беда (( нужно задать всем ячейкам в таблице нулевые поля.
получилось пока только как выше - т.е каждой ячейке последовательно. тормозит жутко (даже скрытие ворда не помогает). как это одним действием сделать ? запись вордовская ничего толкового не показала, наугад пробовал долго - ничего не выходит (( код запускается из Excel.
в ворде запись макроса дает что-то вроде
Код:
    Selection.MoveDown Unit:=wdLine, Count:=3
    Selection.MoveUp Unit:=wdLine, Count:=1
    Selection.Tables(1).Select
    With Selection.Cells(1)
        .TopPadding = CentimetersToPoints(0)
        .BottomPadding = CentimetersToPoints(0)
        .LeftPadding = CentimetersToPoints(0)
        .RightPadding = CentimetersToPoints(0)
        .WordWrap = True
        .FitText = False
    End With
т.е. операция проводиться с первой ячейкой. через макрос если этот код запустить - одну ячейку и обрабатывает. а нужно всю таблицу
bdfy вне форума Ответить с цитированием
Старый 03.01.2011, 08:52   #2
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Обнуление полей таблицы:
Код:
    With Selection.Tables(1)
        .TopPadding = 0
        .BottomPadding = 0
        .LeftPadding = 0
        .RightPadding = 0
    End With
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выделение ячеек в таблице word из VBA excel Святой Дьявол Microsoft Office Excel 5 12.11.2022 00:57
VBA Word,VBA Excel решить 2 задачи fafolo4ka Фриланс 6 05.03.2012 01:15
Вычисляемое поле в таблице ACCESS, создать вычисляемое поля в таблице аксес artlayers Microsoft Office Access 2 04.11.2009 19:29
Как задать параметры для всех элементов формы? Klim Bassenger Microsoft Office Excel 2 10.07.2009 15:44
Объединение ячеек в таблице SnakeMan Общие вопросы Delphi 2 01.04.2008 12:33