Word VBA не примет wdCell в качестве действительного юнита для перемещения - PullRequest
1 голос
/ 27 марта 2019

Я пытаюсь переместиться на одну ячейку в таблице слов с помощью VBA; проблема в том, что когда я использую unit:=wdCell, это дает мне ошибку во время выполнения. Я могу использовать значение по умолчанию wdLine, и оно работает нормально, но если в ячейке более одной строки, я получаю вторую строку вместо следующей.

With Selection
  .MoveDown Unit:=wdCell, Count:=1, Extend:=wdMove
  .Expand wdCell
  .Range.Text = "Hello World"
End With

1 Ответ

0 голосов
/ 27 марта 2019

По какой-то причине вы не можете использовать wdCell в качестве параметра для Move*, что не является документированным фактом.

Один из обходных путей - перейти к концу ячейки и затем переместиться на одну строку вниз:

With Selection
    .MoveEnd wdCell
    .MoveDown wdLine, Count:=1
    .Expand wdCell
End With

Другой обходной путь - , найдите себя в таблице и перейдите к следующей ячейке по индексу:

With Selection
    Dim r As Long, c As Long
    r = .Rows(1).Index
    c = .Columns(1).Index

    If .Rows(1).Parent.Rows.Count >= r + 1 Then
        .Rows(1).Parent.Rows(r + 1).Cells(c).Range.Select
    End If
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...