Я использовал свойство 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
не изменяется, что приводит к увеличению ширины ячейки и отображает ошибка
Ширина ячейки не может быть больше, чем это конкретное значение '.