不使用剪贴板移动Word表行

时间:2014-08-08 14:11:58

标签: ms-word word-vba

我在Word中有一个表,我需要使用VBA将某些行移动到表的底部。

我知道我可以通过剪切和粘贴(myTable.Rows(2).Select ... Selection.Cut ... etc.)来做到这一点,但我不想使用剪贴板。

虽然我可以手动突出显示行并使用鼠标拖动它,但是当我录制宏时,不允许拖动,并且似乎没有任何明显的菜单指令来执行等效操作。

我能想到的另一件事是(使用VBA):

  1. 在底部添加新行
  2. 从要移动的行中复制新行中的数据
  3. 删除原始行
  4. 对此的“性感”解决方案必须在那里;)

1 个答案:

答案 0 :(得分:1)

以下是您可以探索的两件事:

使用FormattedText:

Sub moverow4table1toend()
Dim source As Word.Range
Dim target As Word.Range
Dim t As Word.Table
Set t = ActiveDocument.Tables(1)
Set target = t.Range
target.Collapse wdCollapseEnd
Set source = t.Rows(4).Range
target.FormattedText = source.FormattedText
source.Rows(1).Delete
Set source = Nothing
Set target = Nothing
Set t = Nothing
End Sub

或许如果你实际上做的更像是排序,你可以添加一个列(假设你没有达到限制,用目标行号填充它,对表进行排序,并删除列。