如何可靠地向下移动Word表格中的行?
这是表格的结构。请注意,第一列和第二列都可以有多行和多段。
Rule ID 1
Logic Date must be equal to or greater than 01-Jan-2012
Discrepancy Date is before 01-Jan-2012
message
Test case 1.1 Create form where Date is before 01-Jan-2012
Verify discrepancy message appears.
Print form.
Test case 1.2 Create form where Date is equal to 01-Jan-2012.
Verify no discrepancy message appears.
Print form.
Test case 1.3 Create form where Date is after 01-Jan-2012.
Verify no discrepancy message appears.
Print form.
我尝试了很多方法来向下移动。
当我使用Selection.MoveDown
(下面)尝试unit:=wdLine
时,当第1列包含自动换行时,我遇到了问题。
Selection.MoveDown unit:=wdLine, Count:=1, Extend:=wdMove
当我使用Selection.MoveDown
(下方)尝试unit:=wdParagraph
时,当第2列包含多个段落时,我遇到了问题。
Selection.MoveDown unit:=wdParagraph, Count:=3
unit:=wdRow
似乎不是Selection.MoveDown
的有效参数
Selection.Cells(1).RowIndex
是只读参数
有没有人知道一个简单的方法,一次一行地向下移动表格,既可以处理第1列中的单词换行,也可以处理第2列中的多个段落?
答案 0 :(得分:3)
尝试这样的事情。它是一种通用算法,用于循环遍历Word文档中所有表的每一行和每列。根据需要进行修改(未经测试的代码):
Sub ModifyAllTables()
Dim oTbl As Table
Dim oRow As Row
Dim oRng As Range
For Each oTbl In ActiveDocument.Tables
For Each oRow In oTbl.Rows
' Select the cell in column 2.
Set oRng = oRow.Cells(2).Range
' and do something with it...
'e.g. oRng.TypeText "modified"
Next
Next
End Sub
答案 1 :(得分:2)
Sub NextRow()
Dim c As Long, r As Long
With Selection
'ignore if not in table
If .Information(wdWithInTable) Then
c = .Columns(1).Index
r = .Rows(1).Index
If .Rows(1).Parent.Rows.Count >= r + 1 Then
.Rows(1).Parent.Rows(r + 1).Cells(c).Range.Select
End If
End If
End With
End Sub