我要加粗表头,
我使用代码
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
答案 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