我有一段代码,可以在Microsoft Word中隐藏表格中的一行。问题是现在表中有一个垂直的列。现在这个宏无法工作,因为有一个垂直合并的列(不允许删除它!)。我不太确定是否有办法进一步操作宏,让它忽略垂直合并的列。
下面是隐藏所需行的代码。
Sub CommandButton1_Click()
Dim ItemTable1 As Range
Dim ItemTable2 As Range
With ActiveDocument.Tables(1)
Set ItemTable1 = .Rows(9).Range
ItemTable1.End = .Rows(9).Range.End
End With
With ActiveDocument.Tables(1)
Set ItemTable2 = .Rows(9).Range
ItemTable2 = .Rows(9).Range.End
End With
With ItemTable1.Font
.Hidden = True
End With
With ItemTable2.Font
.Hidden = True
End With
End Sub
微软Word中表格的图像。我想隐藏的行是绿色的。垂直列正在产生问题。
因为表中有垂直合并的单元格,所以你需要循环检查表中的所有单元格,测试RowIndex。例如
Sub CommandButton1_Click()
Dim Cll As Cell, Rng As Range, r As Long, c As Long
r = 9
With ActiveDocument.Tables(1)
For Each Cll In .Range.Cells
With Cll
If .RowIndex = r Then
.Range.Font.Hidden = True
If .ColumnIndex > c Then c = .ColumnIndex
End If
End With
Next
Set Rng = .Cell(r, c).Range
With Rng
.End = .End + 1
.Font.Hidden = True
End With
End With
End Sub