我的学习资料均来自本论坛及word帮助文件。 继续练习处理表格。原代码确实存在问题,原来没注意这个,也没有用附件测试。以我目前的能力,最多只能将各表格按统一行数的方式顺移。以下程序稍长,而且还有些问题未能解决,手法也是初级的,运行效率无力考究,也不知能否在较大的文档中运行。希望能得到各位的指点。 Sub move_row() '设定每个表格为不多于11行 Dim i As Integer, n As Integer, k As Integer, c As Integer Dim myRange As Range, testlen As Long, m As Integer Application.ScreenUpdating = False With ThisDocument.Range If .Tables.Count > 1 Then For i = 1 To .Tables.Count - 1 If .Tables(i).Rows.Count > 11 Then '计算多出的行数 n = .Tables(i).Rows.Count - 11 '删除多出部分的空白行 k = 12 Do While k < 12 + n k = k + 1 .Tables(i).Cell(k, 1).Select Selection.MoveEnd unit:=wdRow If Len(Selection.Range.Text) < 13 Then Selection.MoveDown Count:=n - 1, Extend:=wdExtend Selection.Cut Exit Do End If Loop '移动多余的行 If .Tables(i).Rows.Count > 11 Then .Tables(i).Cell(12, 1).Select With Selection .MoveEnd unit:=wdRow .MoveDown Count:=n - 1, Extend:=wdExtend .Range.Cut End With .Tables(i + 1).Cell(2, 1).Select Selection.MoveEnd unit:=wdRow Selection.Paste End If End If Next
[此贴子已经被作者于2007-3-25 16:56:14编辑过] |