我们知道,Range对象的width属性可以返回单元格的Width,但是它不能给Width属性赋值来指定单元格的宽度。若要设置单元格的宽度,可以使用ColumnWidth属性。当然,这个属性也可以返回单元格的宽度值。
单元格的宽度是单元格所在列的列宽。《VBA帮助》中明确指出,一个单位的列宽等于标准样式中一个字符的宽度。对于比例字体,使用字符0的宽度。Width属性以磅为单位返回列宽。
如果我们想将列宽设置为100磅,请使用以下语句:
带有活动表。范围(“A1”)。ColumnWidth=100 /。宽度*。列宽
以…结尾
不等于100。
奇怪的是,如果你循环2或3次,你会得到一个接近目标宽度的值。测试代码如下:
子测试宽度()
我如龙,我如龙
用活性纸。范围(“A1”)
对于i=100到300步骤100。列宽=8.38
调试。打印“——”I“——”
对于j=1至3。ColumnWidth=i /。宽度*。列宽
调试。打印j,ColumnWidth,宽度
下一个j
接下来我
以…结尾
末端接头
结果如下图1所示。
图1
基本上,最多两个周期后,列宽与目标值之差为0.25。三个周期后,列宽值基本稳定,等于或接近目标值。