我已经使用Range.end
属性来实现将数据设置到表单元格中特定行数的目标。
为此,我首先计算即时像元高度,然后继续更改像元宽度以达到目标像元高度。
此属性在逐步执行中使用时,将给出正确的值,并且我能够实现目标单元格高度。 Range.end
仍然会返回相同的值,即使在更改了必须更改range.end
值的像元高度之后也是如此
'the table acted upon has 2 rows and one column and the column width as already 'set to some small value
With ActiveDocument.Tables(tableIndexTemp + 1)
'calculate cell height
posEnd = .Cell(1, 1).Range.End - 1
heightDaisRow = ActiveDocument.Range(posEnd, _ posEnd).Information(wdVerticalPositionRelativeToTextBoundary)
Do While heightDaisRow > minHeightDaisRow
'increase cell width
.Columns(1).Width = .Columns(1).Width + CentimetersToPoints(0.1)
'again calculate cell height
posEnd = .Cell(1, 1).Range.End - 1
heightDaisRow = ActiveDocument.Range(posEnd, _ posEnd).Information(wdVerticalPositionRelativeToTextBoundary)
Loop
End With
逐步执行时,posEnd
的值会随着宽度的变化而变化,但是一次执行同一代码时,posEnd
的值不会变化,这会导致像元宽度保持不变在增加并显示错误
像元宽度不能超过此特定值”。