首页 > 解决方案 > Word VBA 将不接受 wdCell 作为移动的有效单元

问题描述

我正在尝试使用 VBA 在单词表中向下移动一个单元格;问题是当我使用它时,unit:=wdCell它会给我一个运行时错误。我可以使用默认值wdLine,它工作正常,但如果单元格有不止一行,我最终会在第二行而不是下一个单元格。

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

标签: vbams-word

解决方案


出于某种原因,您不能将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

推荐阅读