Как заставить код игнорировать вертикально объединенный столбец в таблице слов Microsoft - PullRequest
0 голосов
/ 09 мая 2020

У меня есть код, который скрывает строку в таблице в 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

Изображение таблицы в Microsoft Word. Ряд, который я хочу скрыть, выделен зеленым. Вертикальный столбец создает проблемы.

enter image description here

1 Ответ

0 голосов
/ 09 мая 2020

Поскольку в таблице есть объединенные по вертикали ячейки, вам нужно oop пройти все ячейки в таблице, проверяя 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...