当表格标题出现在垂直合并的行中时如何加粗表格标题

时间:2018-07-25 01:51:38

标签: vba ms-word word-vba

我要加粗表头

我使用代码

Selection.Tables.Item(1).Rows(1).Range.Bold = True

但是对于垂直合并表中的表头来说,这是行不通的。

然后,我如下更改了代码,但是如图所示,仍然有两个单元格不是粗体。谁能给我些帮助?

Dim i, t As table
If selection.Tables.count > 0 Then
Set t = selection.Tables.Item(1)
  For i = 1 To t.Columns.count
    t.Range.Cells(i).Range.Font.Bold = -1
  Next i
End If

enter image description here

2 个答案:

答案 0 :(得分:1)

尝试:

Sub Demo()
Dim i As Long
With Selection.Tables(1).Range
  For i = 1 To .Cells.Count
    If .Cells(i).RowIndex < 3 Then
      .Cells(i).Range.Font.Bold = True
    Else
      Exit For
    End If
  Next
End With
End Sub

答案 1 :(得分:1)

无论前两行的单元格在哪一列垂直合并,以下内容均有效。它基于选择第一个单元格时Word的选择方式,然后按住SHIFT键并使用向右箭头键扩展选择范围。

与用户界面不同,当使用MoveEnd逐单元扩展选择时,会立即拾取垂直合并的单元。这就是为什么移动数比列数少一的原因。

Sub BoldTableHeaderVertMergedCells()
    Dim tbl As Word.Table
    Dim cel As Word.Cell
    Dim sel As Word.Selection
    Dim nrCols As Long, nrCol As Long

    Set sel = Selection
    nrCol = 1
    If sel.Information(wdWithInTable) Then
        Set tbl = sel.Tables(1)
        nrCols = tbl.Columns.Count
        Set cel = tbl.Cell(1, 1)
        cel.Select
        Set sel = Selection
        sel.MoveEnd wdCell, nrCols - 1
        sel.Font.Bold = True
    End If
End Sub