某些代码在逐步执行时可以正常工作,但在一次使用中会出现故障

时间:2019-07-02 06:15:18

标签: vba ms-word

我已经使用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的值不会变化,这会导致像元宽度保持不变在增加并显示错误

  

像元宽度不能超过此特定值”。

0 个答案:

没有答案