gpt4 book ai didi

vba - 动态 Fittext 一个单元格

转载 作者:行者123 更新时间:2023-12-02 04:31:44 26 4
gpt4 key购买 nike

我正在使用 perl 中的 OLE 自动化在 Word 中创建表格。我正在以编程方式填充表格内容。指定行高和列宽。我正在努力实现以下目标。

在单元格内容大于单元格宽度的情况下,我想设置 FitText 属性,以便行高不变。但是,我无法确定出现这种情况的单元格。将所有单元格的 Fittext 属性设置为 True,拉伸(stretch)小于单元格宽度的单元格内容。因此,对于比单元格宽的单元格内容,我更喜欢将 FitText 属性设置为 True。

我尝试了以下方法

# set row height
$rowheight=20;
...
...
$table1->Cell($rowindex,$colindex)->{WordWrap}="True";
$table1->Cell($rowindex,$colindex)->Range->{Text}=$text;
$cellheight = $table1->Rows($rowindex)->{Height};
if ($cellheight > $rowheight){
$table1->Cell($rowindex,$colindex)->{FitText}="True";
}

但是,单元格高度属性不会更改,因为高度规则设置为 wdRowHeightAtLeast 并且返回的单元格高度与原始行高没有变化。

我也在 word 中手动看到了这种行为。当打开自动换行且单元格内容较大时,相应的行会变大。

有人可以指出我如何实现这一目标的正确方向吗?

谢谢SR

最佳答案

您可能会想到 AutoFit,而不是 FitText

来自:FitText(MSDN)

If the FitText property is set to True, the font size of the text is not changed, but the visual width of the characters is adjusted to fit all the typed text into the cell. (Source)

来自:Table.AutoFitBehavior 方法(MSDN)

Determines how Microsoft Word resizes a table when the AutoFit feature is used. (Source)

你应该对 AutoFit 及其相关方法有更多的运气。

但是注意,如果您对使用 VBA 操作 Word 对象不是很熟悉,那将不会很容易。

Controlling tables is rather complicated. Word does much of it the way it sees fit, but if you use VBA you must take control. It really isn't desirable that you should make your life even more miserable by invoking the Selection object.

参见 this source还有this link了解更多信息。

关于vba - 动态 Fittext 一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48047255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com