0

我正在用 Word 编写 VBA 代码来格式化表格。我需要允许用户独立于表格主体来格式化表格标题。为此,我希望能够使用内置的表格样式,但是,当我这样做时,样式将应用于整个表格,而不仅仅是标题或正文。

下面是我用来将样式应用于标题的代码:

Sub FormatTableHeader(ByVal control As IRibbonControl)
Dim tbl As Table

If Selection.Information(wdWithInTable) = True Then
    Set tbl = Selection.Tables(1)

    tbl.Rows(1).Range.Style = "TableHeader"
End If

End Sub

我还需要为表体做类似的事情。

是否可以使用表格样式做我想做的事情?我知道我可以编写代码来格式化表头,但我希望保持代码与样式相关联。

4

1 回答 1

0

不确定这是否可行,但您可以按照此过程创建自己的样式并将它们应用于标题行或表格主体。

Sub tableFormat()
Dim lastRow As Integer

lastRow = ActiveDocument.Tables(1).Rows.Count


With ActiveDocument.Tables(1).Rows(1).Range.Font
        .Name = "Arial"
        .Size = 12
        .Italic = True
        .Bold = True
End With

For i = 2 To lastRow
With ActiveDocument.Tables(1).Rows(i).Range.Font
        .Name = "Arial"
        .Size = 8
        .Italic = False
        .Bold = False
End With
Next i
End Sub
于 2018-03-14T12:37:03.327 回答