如何让代码忽略microsoft word表格中垂直合并的栏目

问题描述 投票:0回答:1

我有一段代码,可以在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中表格的图像。我想隐藏的行是绿色的。垂直列正在产生问题。

enter image description here

vba word-vba
1个回答
0
投票

因为表中有垂直合并的单元格,所以你需要循环检查表中的所有单元格,测试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
© www.soinside.com 2019 - 2024. All rights reserved.