Просто небольшая проблема здесь, я пытался создать простой макрос, чтобы удалить заполнение ячеек из всех таблиц документа, но по неизвестной причине макрос не применяет настройки. Вручную (в том числе при записи макроса) это работает как шарм.

Sub Macro1()
'
' Macro1 Macro
'
'
Selection.HomeKey Unit:=wdStory
Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext, Count:=1, Name:=""
Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
With Selection.Find
    .Text = ""
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Tables(1).Select
With Selection.Cells(1)
    .TopPadding = CentimetersToPoints(0.05)
    .BottomPadding = CentimetersToPoints(0.05)
    .LeftPadding = CentimetersToPoints(0.05)
    .RightPadding = CentimetersToPoints(0.05)
    .WordWrap = True
    .FitText = False
End With
End Sub

Есть идеи? Я исчерпал любой.

Ура, Джеймс

1 ответ1

0

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

Sub YouSayPaddingISayMargin()
'sets the default margin sizes for all
'existing tables in the document
Dim tbl As Word.Table
For Each tbl In ActiveDocument.Tables
    tbl.TopPadding = CentimetersToPoints(0)
    tbl.BottomPadding = CentimetersToPoints(0)
    tbl.LeftPadding = CentimetersToPoints(0)
    tbl.RightPadding = CentimetersToPoints(0)
Next

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .